-1
私は場所と訪問数を含むテーブルを持っています。1時間ごとにユニークユーザーの平均訪問数を表示します
テーブル:
Place(place_id(pk))
Visit(v_id, user_id, timestamp, place_id(fk))
私は場所が一意のuser_id年代で全体の訪問のテーブルの上に平均で1時間ごとに持っているどのように多くの訪問を知りたいです。
私は場所と訪問数を含むテーブルを持っています。1時間ごとにユニークユーザーの平均訪問数を表示します
テーブル:
Place(place_id(pk))
Visit(v_id, user_id, timestamp, place_id(fk))
私は場所が一意のuser_id年代で全体の訪問のテーブルの上に平均で1時間ごとに持っているどのように多くの訪問を知りたいです。
あなたは
TIMESTAMPDIFF(HOUR, MIN(timestamp), MAX(timestamp))
または
COUNT(DISTINCT DATE(timestamp), HOUR(timestamp))
を使用することができる明確な時間数を取得するには
DATE(timestamp), HOUR(timestamp)
COUNT(DISTINCT user_id, DATE(timestamp), HOUR(timestamp))
のグループにそれらをすることができます一度だけの異なる時間あたりのすべてのユーザーをカウントするには
はおそらく遅くなりますが、より正確かもしれません。
そして、AVGを取得するために除算を使用します。
SELECT place_id,
COUNT(DISTINCT user_id, DATE(timestamp), HOUR(timestamp))
/TIMESTAMPDIFF(HOUR, MIN(timestamp), MAX(timestamp)) AS avg_visits_per_hour
FROM Visit
GROUP BY place_id