如何在Google Bigquery中选择不同的值?
查询:
SELECT DISTINCT cc_info
FROM user
WHERE date = ?
谢谢!
答案 0 :(得分:20)
SELECT cc_info
FROM user
WHERE date = ?
GROUP BY cc_info
答案 1 :(得分:4)
只需使用分组依据,
SELECT cc_info
FROM user
WHERE date = ?
GROUP BY cc_info
如果您想使用COIST而不是DISTINCT值,
SELECT COUNT(DISTINCT cc_info)
FROM user
WHERE date = ?
答案 2 :(得分:3)
尝试使用group by
SELECT cc_info
FROM user
WHERE date = ?
group by cc_info
答案 3 :(得分:1)
SELECT COUNT(DISTINCT cc_info)
FROM user
WHERE date = ?
是 NOT 正确的查询,因为DISTINCT
是统计近似值,并不保证是准确的。见https://cloud.google.com/bigquery/docs/reference/legacy-sql#countdistinct
更好的方法是
select EXACT_COUNT_DISTINCT(cc_info) from user where date = ?
答案 4 :(得分:1)
对于所有在BigQuery中找到DISTINCT方法并且需要对具有大列的表使用唯一字段功能的人,将无法使用tning所述的GROUP BY
。
截至2020年,BigQuery具有DISTINCT修饰符。您需要将查询包装为:
SELECT DISTINCT usr.cc_info
FROM (
SELECT *
FROM user
WHERE date = ?
) usr
这对于从其他SQL产品转移过来的人们非常方便。
答案 5 :(得分:0)
这是实现您的目标的另一种方法(如果其他人需要它),该方法可以在当前的BigQuery 2020中使用。
SELECT colname FROM table1
UNION DISTINCT
SELECT colname FROM table2
UNION DISTINCT
.
.
.
SELECT colname FROM tableN
我的推荐人是this article。