BigQuery - 同时运行计数和拆分功能
Posted
技术标签:
【中文标题】BigQuery - 同时运行计数和拆分功能【英文标题】:BigQuery - running count and split functions together 【发布时间】:2014-10-28 15:24:21 【问题描述】:我正在尝试对 split 函数的结果进行计数。下面的查询显示了一个示例:
select a.name,
count(if(split(b.name,",")='test',null,1)) > 0 hasTest,
from (select * from (select 'test,this' as name) a left join (select '2' as name) b on
a.name=b.name)
此查询产生错误:SELECT clause has mix of aggregations 'hasTest' and fields 'a.name' without GROUP BY clause
如果我将hasTest
列更改为整数而不是布尔值,那么:
count(if(split(b.name,",")='test',null,1))
查询成功。
出于某种原因,BigQuery 知道如何评估计数函数(处理就地创建的嵌套元素,因此不需要 group by 子句),但无法在以下情况下使用相同的功能计数包含在布尔运算符中。
【问题讨论】:
【参考方案1】:我认为这只是一个不清楚的错误信息。 这里的问题似乎与 null 的数据类型有关。 bq 需要你定义 nulls 数据类型。默认的空数据类型是布尔值。如果不定义,则同一字段中存在多种数据类型。
【讨论】:
以上是关于BigQuery - 同时运行计数和拆分功能的主要内容,如果未能解决你的问题,请参考以下文章