У меня есть таблица, в которой хранятся комментарии пользователей за каждый месяц.Комментарии хранятся с использованием меток времени UTC, я хочу получить пользователей, которые публикуют более 20 комментариев в день.Я могу получить начало и конец отметки времени для каждого дня, но не могу сгруппировать таблицу комментариев по количеству комментариев.Это скрипт, который у меня есть для получения дат, временных отметок и отдельных пользователей.
SELECT
DATE(TIMESTAMP_SECONDS(r.ts_start)) AS date,
r.ts_start AS timestamp_start,
r.ts_start+86400 AS timestamp_end,
COUNT(*) AS number_of_comments,
COUNT(DISTINCT s.author) AS dictinct_authors
FROM ((
WITH
shifts AS (
SELECT
[STRUCT(" 00:00:00 UTC" AS hrs,
GENERATE_DATE_ARRAY('2018-07-01','2018-07-31', INTERVAL 1 DAY) AS dt_range) ] AS full_timestamps )
SELECT
UNIX_SECONDS(CAST(CONCAT( CAST(dt AS STRING), CAST(hrs AS STRING)) AS TIMESTAMP)) AS ts_start,
UNIX_SECONDS(CAST(CONCAT( CAST(dt AS STRING), CAST(hrs AS STRING)) AS TIMESTAMP)) + 86400 AS ts_end
FROM
shifts,
shifts.full_timestamps
LEFT JOIN
full_timestamps.dt_range AS dt)) r
INNER JOIN
`user_comments.2018_07` s
ON
(s.created_utc BETWEEN r.ts_start
AND r.ts_end)
GROUP BY
r.ts_start
ORDER BY
number_of_comments DESC
А это пример вывода 1 :
Таблица user_comments.2018_07 выглядит следующим образом:
Более конкретно, я хочу, чтобы первый вывод 1 содержал еще один столбец, показывающий число авторов, у которых большечем 20 комментариев на дату.Как я могу это сделать?