无法按timestamp_trunc分组

时间:2017-01-12 00:01:39

标签: sql google-bigquery

我在标准sql中有这个查询。

select timestamp_trunc(endTime, MONTH), count(1)
from `simple_table`
group by timestamp_trunc(endTime, MONTH);

返回以下错误:

SELECT列表表达式引用列endTime既不在[1:24]

分组也不聚合

但是,以下代码:

select timestamp_trunc(endTime, MONTH)
from `simple_table`
limit 10

完美无缺。是否存在一些关于BigQuery的功能的隐藏参考,因为我错过了?

1 个答案:

答案 0 :(得分:3)

按以下方式执行

select timestamp_trunc(endTime, MONTH), count(1)
from `simple_table`
group by 1

select timestamp_trunc(endTime, MONTH) as m, count(1)
from `simple_table`
group by m

我认为发生的事情不是在GROUP BY中使用函数/表达式的问题,而是引擎无法识别SELECT列表中的字段和GROUP BY中的表达式的表达式是相同的。相反,他们被视为不同的,因此引擎思考endTime提交的是" orphan" (既不汇总也不分组)

例如,下面将起作用(当然它不是你需要的 - 但它通过接受表达式来证明该组)

select count(1)
from `simple_table`
group by timestamp_trunc(endTime, MONTH)