Lew*_*yfo 1 sql timestamp group-by average google-bigquery
我是 BigQuery 的新手,所以我正在努力以一种可能有用的方式对我的数据进行分组。此时,我已将 unix 时间戳转换为日期(例如 2018-08-27 04:54:56 UTC 等...)。我每 10 分钟左右阅读一次,并且只想按日期对它们进行分组,然后对我的各个专栏取每日平均值。我认为 'group by' 然后是 'avg' 可能是前进的方向,但我不确定如何实施第一部分。到目前为止,我用来创建表的代码如下:
SELECT TIMESTAMP_SECONDS(timestamp) as timestamp,humidity,co2,temperature,app_id
FROM data.staging
where timestamp is not null
;
Run Code Online (Sandbox Code Playgroud)
这是我的输出的几行:
|| Timestamp || humidity || co2 || temperature || app id||
||========================||===========||=======||==============||========||
||2018-08-31 13:35:50 UTC || 63.4 || 634.5 || 21.2 || office_||
||2018-08-31 14:37:20 UTC || 67.8 || 600.4 || 20.8 || office_||
Run Code Online (Sandbox Code Playgroud)
等等..
抱歉格式不正确,如果还有其他需要,我很乐意提供。谢谢你的帮助!
您可以将时间戳转换为日期,然后使用GROUP BY
:
SELECT DATE(TIMESTAMP_SECONDS(timestamp)) as dte, AVG(humidity), AVG(co2), AVG(temperature)
FROM data.staging
WHERE timestamp is not null
GROUP BY dte
ORDER BY dte;
Run Code Online (Sandbox Code Playgroud)
请注意,日期是 UTC 日期。 DATE()
需要第二个参数。我经常称之为:
SELECT DATE(TIMESTAMP_SECONDS(timestamp), 'America/New_York') as dte,
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2717 次 |
最近记录: |