我是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等等,这还不行。
答案 0 :(得分:1)
听起来像您想要TIMESTAMP_TRUNC
function,例如
select TIMESTAMP_TRUNC(event_timestamp, MONTH) as timestamp1
FROM `alive-ios.analytics_160092165.events_201810*`
GROUP BY timestamp1
答案 1 :(得分:1)
以下是用于BigQuery标准SQL
SELECT
FORMAT_TIMESTAMP('%Y-%m', TIMESTAMP_MICROS(event_timestamp)) month,
COUNT(1) events
FROM `project.dataset.table`
GROUP BY month
注意:您很可能希望每月统计事件,因此我添加了COUNT(1)
,但是您可以添加所需的任何内容-例如,如果要计算名为{{ 1}}
此外,您的通配符表达式的构建方式将使其仅具有2018年10月月份的事件(假设表名称代表事件发生的时间)-因此,您需要稍微放松一下通配符表达式(对于例如)value
,因此您将在整个2018年的几个月内进行活动
假设您的event_timestamp以微秒为单位
如果实际上它们是TIMESTAMP类型-只需删除对TIMESTAMP_MICROS()函数的使用即可
答案 2 :(得分:0)
以Elliott的示例为基础,我认为您需要首先将值转换为时间戳。从您的示例数据中,我认为您需要TIMESTAMP_MICROS
select TIMESTAMP_TRUNC(TIMESTAMP_MICROS(event_timestamp), MONTH) as timestamp1
FROM `alive-ios.analytics_160092165.events_201810*`
GROUP BY timestamp1