Google bigquery BigQuery-同时运行count和split函数
我正在尝试对分割函数的结果进行计数。下面的查询显示了一个示例:Google bigquery BigQuery-同时运行count和split函数,google-bigquery,Google Bigquery,我正在尝试对分割函数的结果进行计数。下面的查询显示了一个示例: 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子句混合了聚合“hasTest”和字
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子句混合了聚合“hasTest”和字段“a.name”,但没有GROUP BY子句
如果我将hasTest
列更改为整数而不是布尔值,则:
count(if(split(b.name,",")='test',null,1))
查询成功
出于某种原因,BigQuery知道如何计算count函数(处理就地创建的嵌套元素,因此不需要group by子句),但当count被包装在布尔运算符中时,它无法获得相同的功能。我认为这只是一条不清楚的错误消息。 这里的问题似乎与null的数据类型有关。bq需要您定义nulls数据类型。默认的空数据类型为布尔值。如果不定义它,则同一字段中会混合使用多种数据类型