BigQuery - 使用作用域聚合在查询中重复行

时间:2014-12-04 07:22:22

标签: google-bigquery

我正在尝试运行使用带有范围聚合的 group_concat 函数的查询。 以下查询返回175行,所有行都具有相同的值。复制似乎是在cell.value中有175个元素的结果

SELECT
  ngram,
  group_concat(cell.sample.id) within record con
FROM [publicdata:samples.trigrams] 
where ngram = '! ! That'

在上面的查询中添加新列( count with scoped aggregation)时,结果是一行,如预期的那样。计数行显示值175。

SELECT
  ngram,
  count(cell.value) within record cnt,
  group_concat(cell.sample.id) within record con
FROM [publicdata:samples.trigrams] 
where ngram = '! ! That'

似乎发生了行重复,因为没有要分组的值(所有空值)。如果我将 group_concat 更改为:

group_concat(if(cell.sample.id is null,'',cell.sample.id)) within record con

然后又一次只有一行。

这是什么原因?

如果不依赖于所有列上的group by(这也需要子查询,因为它不可能组合group by和scoped聚合函数),如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

这是查询引擎中的一个错误....它应该只返回1行。我们正在内部跟踪它,希望很快就能解决。