Bigquery选择不同的值

时间:2015-06-03 05:21:44

标签: google-bigquery

如何在Google Bigquery中选择不同的值?

查询:

SELECT DISTINCT cc_info
FROM user
WHERE date = ?

谢谢!

6 个答案:

答案 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