我正在处理一个假想的数据集(https://github.com/Codecademy/datasets/tree/master/twitch)有关Twitch的信息,并尝试找出每个流媒体游戏一天中最忙的时间(通过“ stream.csv”表)。
因此,我正在使用:
strftime(format, column)
剥离时间戳的小时。
我尝试使用:
SELECT strftime('%H', time), game, MAX(COUNT(*))
FROM stream
GROUP BY 2
ORDER BY 3;
但是SQL不允许双重聚合。
我仍如何显示每个游戏在一天中什么时候最多观看/观看?
提前感谢!
使用窗口功能:
SELECT s.*
FROM (SELECT strftime('%H', time), game, COUNT(*),
ROW_NUMBER() OVER (PARTITION BY game ORDER BY COUNT(*) DESC) as seqnum
FROM stream
GROUP BY 1, 2
) s
WHERE seqnum = 1;