BigQuery - 一起运行计数和拆分功能

时间:2014-10-28 15:24:21

标签: google-bigquery

我正在尝试对 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 知道如何评估count函数(处理在适当位置创建的嵌套元素,因此不需要group by子句),但是当它不能使用相同的功能时count包含在一个布尔运算符中。

1 个答案:

答案 0 :(得分:1)

我认为这只是一个不明确的错误消息。 这里的问题似乎是数据类型为null。 bq需要您定义空数据类型。默认的null数据类型是boolean。如果您没有定义它,则同一领域中会混合使用各种数据类型。