BigQuery 新的标准 SQL 语法是不是与“计数不同”完全一致?

Posted

技术标签:

【中文标题】BigQuery 新的标准 SQL 语法是不是与“计数不同”完全一致?【英文标题】:Is "count distinct" exact with BigQuery new standard SQL syntax?BigQuery 新的标准 SQL 语法是否与“计数不同”完全一致? 【发布时间】:2016-05-11 19:06:11 【问题描述】:

使用旧版 BigQuery 语法,如果我们想获得一个字段的不同值的确切数量,我们必须使用 exact_count_distinct 函数。

对于Standard SQL 2011 syntax,我想知道如果我不选择 ',“count(distinct myfield)”是否将始终返回不同值的确切数量使用 Legacy SQL' 选项。

【问题讨论】:

【参考方案1】:

COUNT(DISTINCT input) 给出标准 SQL 中的准确计数。

一个重要的区别是 COUNT(DISTINCT input) 在旧版 BigQuery SQL 中比 EXACT_COUNT_DISTINCT(input) 更具可扩展性,因此通常性能会更好,并且您遇到资源超出错误的可能性较小。

您可以在migration guide 中了解旧版 SQL 和标准 SQL 之间的其他差异。

【讨论】:

【参考方案2】:

基于APPROX_COUNT_DISTINCT 的文档(行间读取):

COUNT(DISTINCT input) - 精确计数APPROX_COUNT_DISTINCT(input) - 近似结果

【讨论】:

以上是关于BigQuery 新的标准 SQL 语法是不是与“计数不同”完全一致?的主要内容,如果未能解决你的问题,请参考以下文章

在新的 BigQuery 标准 SQL 的数组中使用结构

BigQuery 标准 SQL 如何将行转换为列

如何在 BigQuery 标准 SQL 中旋转多个列

如何在 ReDash 中设置标准 SQL BigQuery

无法将 bigquery 与标准 sql 一起使用

如何让 BigQuery 的 API 使用标准 SQL 进行查询?