Округление отметки времени до 15-минутных интервалов в LegacySQL - PullRequest
0 голосов
/ 26 сентября 2018

Я извлекаю некоторые данные, показывающие средние взаимодействия по часам, но я хотел бы сгруппировать их так, чтобы они показывали мне средние взаимодействия за 15-минутные блоки с использованием временной метки, к сожалению, я ограничен LegacySQL.Я прочитал несколько решений для достижения этого с помощью StandardSQL, но как я могу сделать это с Legacy?

Вот мой код:

SELECT
DAYOFWEEK(meta_recordDate) AS day_num,
HOUR(property_event_ts)+1 AS hour,
IF(page_type = 'transaction',COUNT(transaction_id),0)/4 AS average_interactions,
FROM [TABLE]
WHERE (TIMESTAMP(meta_recordDate) BETWEEN DATE_ADD(TIMESTAMP(CURRENT_DATE()), -31, 'DAY') AND DATE_ADD(TIMESTAMP(CURRENT_DATE()), -1, 'DAY')) 
AND dayofweek(current_date()) = DAYOFWEEK(meta_recordDate)
AND page_type = 'transaction'
GROUP BY page_type,day,hour,day_num
ORDER BY hour

Мои данные из этого запроса выглядят такэто:

enter image description here

1 Ответ

0 голосов
/ 26 сентября 2018

Чтобы округлить минуты временной метки до 15-минутных интервалов в LegacySQL - вы можете использовать следующие выражения

15 * INTEGER(MINUTE(property_event_ts)/15 + 1)

Итак, добавьте 15 * INTEGER(MINUTE(property_event_ts)/15 + 1) AS mnt в свой список SELECT и mnt до GROUP BYlist

Зависит от того, каким образом вы хотите округлить, вы можете потенциально удалить + 1 часть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...