【发布时间】:2020-06-11 04:11:22
【问题描述】:
我计划为每个用户计算最频繁的 part_of_day。在这种情况下,首先,我用 part_of_day 编码时间戳,然后用频率最高的 part_of_day 聚合。我使用 ARRAY_AGG 来计算模式 ()。但是,我不确定如何用 ARRAY_AGG 处理时间戳,因为有错误,所以我的代码结构可能是错误的
SELECT User_ID, time,
ARRAY_AGG(Time ORDER BY cnt DESC LIMIT 1)[OFFSET(0)] part_of_day,
case
when time BETWEEN '04:00:00' AND '12:00:00'
then "morning"
when time < '04:00:00' OR time > '20:00:00'
then "night"
end AS part_of_day
FROM (
SELECT User_ID,
TIME_TRUNC(TIME(Request_Timestamp), SECOND) AS Time
COUNT(*) AS cnt
收到错误:
Syntax error: Expected ")" but got identifier "COUNT" at [19:9]
【问题讨论】:
标签: sql google-bigquery