Bigquery: отметка времени группы по месяцам - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в bigquery и могу показывать метку времени следующим образом.

select event_timestamp as timestamp1
          FROM `alive-ios.analytics_160092165.events_201810*` 
          GROUP BY timestamp1

Вывод такой.Как я могу сгруппировать их по месяцам?Это так?https://www.pascallandau.com/bigquery-snippets/convert-timestamp-date-datetime-to-different-timezone/

Я пытаюсь использовать to_char, DATE и т. Д., И это не так.

enter image description here

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Основываясь на примере Эллиотта, я думаю, вам нужно сначала преобразовать значение в метку времени.Из ваших примеров данных я думаю, что вам нужно TIMESTAMP_MICROS

TIMESTAMP_MICROS

select TIMESTAMP_TRUNC(TIMESTAMP_MICROS(event_timestamp), MONTH) as timestamp1
FROM `alive-ios.analytics_160092165.events_201810*`
GROUP BY timestamp1
0 голосов
/ 24 октября 2018

Ниже для BigQuery Standard SQL

SELECT 
  FORMAT_TIMESTAMP('%Y-%m', TIMESTAMP_MICROS(event_timestamp)) month, 
  COUNT(1) events
FROM `project.dataset.table`
GROUP BY month 

Примечание. Скорее всего, вы хотите считать события за каждый месяц, поэтому я добавил COUNT(1), но вы можете добавить все, что вам нужно - например, SUM (сумма) например, если вы хотите вычислить некоторую метрику с именем value

Кроме того, ваше подстановочное выражение построено таким образом, что оно будет иметь только события за октябрь 2018 года (при условии, что имя таблицы представляет времясобытие) - так что вам нужно будет немного ослабить свое подстановочное выражение (например) alive-ios.analytics_160092165.events_2018*, чтобы у вас были события за месяцы всего 2018 года

Выше, если предположить, что ваша event_timestamp представлена ​​в микросекундах
Если на самом деле они относятся к типу TIMESTAMP - просто удалите использование функции TIMESTAMP_MICROS ()

0 голосов
/ 24 октября 2018

Звучит так, как будто вам нужна функция TIMESTAMP_TRUNC , например

select TIMESTAMP_TRUNC(event_timestamp, MONTH) as timestamp1
FROM `alive-ios.analytics_160092165.events_201810*`
GROUP BY timestamp1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...