为什么Google BigQuery会返回重复的行但不计算它们?

时间:2016-01-26 01:03:37

标签: google-bigquery

如果我做的话

select * from table where ID = 1234

我得到2条记录。

如果我运行此查询

select count(*) from table where ID = 1234

我的计数值为1.

有没有人经历过类似的事情?

现在,我不知道哪个答案是正确的...我在系统中有1条记录还是2条记录?

1 个答案:

答案 0 :(得分:1)

如果您的表具有id = 1234的一行,则此方案是可行的,但此行中包含两个值的重复字段。

BigQuery自动展平查询结果 所以下面选择只是展平结果,这就是为什么你看到两行

SELECT * FROM table WHERE ID = 1234

而下面的第二个语句只计算行数,这只是一个

SELECT COUNT(*) FROM table WHERE ID = 1234

请参阅下面重新解决案例的真实示例

SELECT * FROM [publicdata:samples.trigrams] 
WHERE ngram = 'to carry more'
上面的

返回241行,而下面只显示1(一)。

SELECT COUNT(*) FROM [publicdata:samples.trigrams]  
WHERE ngram = 'to carry more'

这是我对你发生的事情的猜测。为了确定 - 请提供您的表格的架构,也许还有一些数据示例

您可以阅读有关扁平化here

的更多信息