0

タグの総数と、タグが表示される瞬間の合計から計算される重心点の距離を計算しようとしています。これが (tc_sum/cnt) の概念です。
ただし、サブクエリの SELECT では、「中心」がまだ計算されていないため、重心点を取得できず、「距離」を取得できません。
何か助けはありますか?

SELECT cnt, tc_sum, ROUND(tc_sum/cnt) as centr, distance
FROM (
    SELECT SUM(timecode) as tc_sum, count(timecode) as cnt, ABS( centr - '".$timecode."' ) AS distance
    FROM dados d
    WHERE tag = 'donald'
    AND filename = 'donald.mp4'
    AND group_id = '1'
    ) d
4

2 に答える 2

1

試す

SELECT cnt, tc_sum, ROUND(tc_sum/cnt) as centr, distance
FROM (
SELECT SUM(timecode) as tc_sum, count(timecode) as cnt, ABS( ROUND(tc_sum/cnt)- '".$timecode."' ) AS  distance
FROM dados d
WHERE tag = 'donald'
AND filename = 'donald.mp4'
AND group_id = '1'
) d
于 2013-02-28T11:36:10.673 に答える
1
SELECT 
 SUM(timecode) as tc_sum, 
 SUM(timecode) as cnt, 
 ABS( SUM(timecode) / SUM(timecode) - '".$timecode."' ) AS distance, 
 ROUND(SUM(timecode) / SUM(timecode)) AS centr
FROM dados d
WHERE tag = 'donald'
 AND filename = 'donald.mp4'
 AND group_id = '1'

クエリは行ごとに機能し、この方法でエイリアスを参照することはできません。それらをもう一度「再計算」する必要があります。結果は実際には複数回計算されるわけではないため、「再計算」という言葉は適切ではありません。オプティマイザーは、一度だけ計算されるように処理します。ただし、エイリアスは、クエリが実行された後にのみ認識されます。残念ながら、私の英語は上手に説明するにはあまりにも下手です :)

于 2013-02-28T11:38:27.260 に答える