Как отобразить самый загруженный час дня (большинство просмотров / строк) для категории в SQL? - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю над воображаемым набором данных (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 не допускает двойной агрегации.

Как мне по-прежнему отображать, в какое время дня каждая игра чаще всего транслируется / просматривается?

Заранее спасибо!

1 Ответ

0 голосов
/ 29 апреля 2020

Использовать оконные функции:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...