google-bigquery - 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)
没有工作
任何人都可以帮忙吗?在此先感谢和亲切的问候,
解决方案
我想 SELECT * 其中会话是唯一的...
改用下面 - 注意使用=
inCOUNT(*) = 1
SELECT *
FROM `table.id`
WHERE session IN (
SELECT session
FROM `table.id`
GROUP BY session
HAVING COUNT(*) = 1
)
推荐阅读
- ios - 反向地理编码解释
- javascript - 从网页中读取动态创建的内容
- javascript - D3.js 线过渡超出图表
- java - org.springframework.web.client.HttpClientErrorException: 403 null (Spring RestTemplate)
- gradle - 使用 gradle 复制放在目录中的最新文件
- c - c 编程 - 从 'void*' 到 'record_s* 的无效转换
- sql - 递归 CTE 查找当前和以前的 WorkState 以及 WorkState 的进入时间
- c# - C# 创建一个比较两个成员属性的 LambdaExpression(用于 EF Core HasQueryFilter)
- asynchronous - 异步api调用后如何使用vuex getter
- r - 使用插入符号模型的 H2O.ai 堆叠合奏