Google bigquery Bigquery选择不同的值
如何在Google Bigquery中选择不同的值 查询:Google bigquery Bigquery选择不同的值,google-bigquery,Google Bigquery,如何在Google Bigquery中选择不同的值 查询: SELECT DISTINCT cc_info FROM user WHERE date = ? 谢谢 尝试使用分组依据 SELECT cc_info FROM user WHERE date = ? GROUP BY cc_info SELECT cc_info FROM user WHERE date = ? group by cc_info 只需使用分组方式 SELECT cc_info FROM user WHERE da
SELECT DISTINCT cc_info
FROM user
WHERE date = ?
谢谢 尝试使用
分组依据
SELECT cc_info
FROM user
WHERE date = ?
GROUP BY cc_info
SELECT cc_info
FROM user
WHERE date = ?
group by cc_info
只需使用分组方式
SELECT cc_info
FROM user
WHERE date = ?
GROUP BY cc_info
如果要对可以使用的不同值进行计数
SELECT COUNT(DISTINCT cc_info)
FROM user
WHERE date = ?
不是正确的查询,因为DISTINCT
是一种统计近似值,不能保证精确。看
所以更好的方法是
select EXACT_COUNT_DISTINCT(cc_info) from user where date = ?
对于所有在BigQuery中找到DISTINCT方法的人,以及需要为具有大列的表使用unique field功能的人,使用所提到的
GROUP BY
是不可能的
从2020年起,BigQuery拥有修改器。您需要将查询包装为:
SELECT DISTINCT usr.cc_info
FROM (
SELECT *
FROM user
WHERE date = ?
) usr
这对于从其他SQL产品转移到其他SQL产品的人来说可能非常方便。这是实现您的目标的另一种方式(以防其他人需要它),在当前的BigQuery 2020中可以实现
SELECT colname FROM table1
UNION DISTINCT
SELECT colname FROM table2
UNION DISTINCT
.
.
.
SELECT colname FROM tableN
我的参考是。如果此解决方案随着表的增大而停止工作,您可以将
分组方式
替换为分组方式
,以增加可伸缩性。是否可以从表分组方式中选择*?是的,您是对的。普通distinct使用超日志算法对分布式计算机上的distinct进行计数。根据您的数据,如果某种近似值是正确的,则COUNT提供的性能比EXACT_COUNT_DISTINCT好得多。我真的很欣赏一个简单的COUNT-DISTINCT语句背后运行的复杂算法。
SELECT colname FROM table1
UNION DISTINCT
SELECT colname FROM table2
UNION DISTINCT
.
.
.
SELECT colname FROM tableN