【发布时间】:2017-07-17 19:52:30
【问题描述】:
我有这张桌子my_table:
recorder_id person_id day
A1 1 2017-06-03 12:30
A1 1 2017-06-03 12:45
B1 1 2017-06-03 12:50
A1 2 2017-06-03 16:40
B1 2 2017-06-03 16:45
B1 2 2017-06-03 18:20
A1 1 2017-06-04 11:22
我想知道每个人平均每天经过每个记录仪的次数。例如,id 1 的人平均每天经过记录器 A1 1.5 次,而人 2 平均每天经过此记录器 0.5 次(因为此人没有 2017-06-04 的记录)。同样的逻辑也应该适用于 B1。
recorder_id person_id daily_average_per_person
A1 1 1.5
A1 2 0.5
B1 1 0.5
B1 2 1.0
我怎样才能得到这个结果?
我尝试了这个查询,但我不知道如何计算每个唯一用户的每日平均值:
SELECT recorder_id, person_id,
to_date(day) as hour,
count(*) as hourly_count
FROM my_table
GROUP BY recorder_id, person_id, to_date(day)
ORDER BY hourly_count;
【问题讨论】: