これが私のクエリです:
SELECT v2.mac, v2.userag_hash, v2.area, count(*), count(distinct v2.video_id)
FROM video v2 JOIN (
SELECT distinct v.mac, v.userag_hash
from video v
WHERE v.date_pl >= '2012-01-30 00:00' AND
v.date_pl <= '2012-02-05 23:55'
ORDER BY rand() LIMIT 50
) table2
ON v2.mac = table2.mac AND
v2.userag_hash = table2.userag_hash AND
v2.date_pl >= '2012-01-30 00:00' AND
v2.date_pl <= '2012-02-05 23:55'
GROUP BY v2.mac, v2.userag_hash
データベースに 1 つのテーブル「ビデオ」があり、数千のユーザーのデータが含まれています。50 人のユーザーをランダムに選択し、選択した行に基づいて計算したいと考えています (各ユーザーは の一意の組み合わせによって識別されます)。このクエリの結果は次のとおりです。 :
usermac1, userag_hash1, area1, 10, 5
usermac2, userag_hash2, area2, 20, 8
...
しかし、クエリの最後に「GROUP BY」を使用しないと、usermac、userag_hash、areax、1500、700 の 1 つの行のみが返されます (この行が何を表しているのかわかりません)。
「1500, 700」が前の結果の最後の 2 列の合計かどうか疑問に思っています。1500 = 10+20+... 700 = 5+8+... のように