使用BigQuery新标准SQL语法,"count distinct"是否完全正确?

YAB*_*DOU 2 google-bigquery

使用遗留的BigQuery语法,如果我们想要获得字段的确切数量的不同值,我们必须使用exact_count_distinct函数.

使用标准SQL 2011语法,我想知道如果我不选择"使用旧版SQL"选项," count(distinct myfield)"将始终返回不同值的确切数量.

Mik*_*ant 7

基于用于文档APPROX_COUNT_DISTINCT(与线之间的读入):

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


Ell*_*ard 7

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

一个重要的区别是,COUNT(DISTINCT input)它比EXACT_COUNT_DISTINCT(input)传统的BigQuery SQL 更具可扩展性,因此通常性能会更好,并且您不太可能遇到资源超出的错误.

您可以在迁移指南中了解旧版和标准SQL之间的其他差异.