首页 > 解决方案 > Bigquery SELECT * WHEN COUNT(DISTINCT value) 不起作用

问题描述

我有一个包含 30 多列的 bigQuery 表,我想SELECT *知道哪里session是唯一的。

我在 StackOverflow 中遇到了几乎所有关于这个主题的问题,但没有一个能帮助我达到预期的结果。

我试过SELECT COUNT(DISTINCT session) FROM table.id了,但问题是只返回session列,我需要整行。

然后我尝试了:

SELECT *
FROM `table.id`
WHERE session IN (
    SELECT session
    FROM `table.id`
    GROUP BY session
    HAVING COUNT(*) = 1
)

但它返回的行数要少得多SELECT COUNT(DISTINCT sessions)

所以按逻辑我试过了: SELECT *, COUNT(DISTINCT sessions)SELECT * WHERE COUNT(DISTINCT sessions)

没有工作

任何人都可以帮忙吗?在此先感谢和亲切的问候,

标签: google-bigquery

解决方案


我想 SELECT * 其中会话是唯一的...

改用下面 - 注意使用=inCOUNT(*) = 1

SELECT *
FROM `table.id`
WHERE session IN (
    SELECT session
    FROM `table.id`
    GROUP BY session
    HAVING COUNT(*) = 1
)

推荐阅读