sql - SQL - 通过加入表本身在数据集中查找相同的数据
问题描述
我试图编写一个 sql 查询来找出以下内容 -
User_info column1 column2
userId1 pete katie
katie pete
john
userId2 pete katie
miles
jessica
pete
userId3 jessica pete
matt katie
john
所以假设我的数据在 SQL 中按以下方式构造,其中 column1 和 column2 基本上是记录类型。
如果 column1 中有一个不属于 column2 的名称,那么我基本上想报告它。
所以我的结果应该看起来像
User_info Count
userId1 0
userId2 0
userId3 2
userId1 在 column2 中有 pete 和 katie,因此计数将为 0
userId2 在 column2 中有 pete,因此计数将为 0
userId3 在 column2 中没有 jessica 或 matt,因此计数将为 2
关于如何解决这个问题的任何想法,不幸的是我在这里画了一个空白。谢谢
解决方案
以下是 BigQuery 标准 SQL
#standardSQL
SELECT User_info,
(SELECT COUNT(1) FROM UNNEST(column1) value
WHERE NOT value IN (SELECT value FROM UNNEST(column2) value)
) Missing_count
FROM `project.dataset.table`
如果适用于您的问题的样本数据 - 结果是
Row User_info Missing_count
1 userId1 0
2 userId2 0
3 userId3 2
推荐阅读
- mysql - Spring Data JPQL 如何使用动态 where 子句创建查询?
- tensorflow - 将学习到的参数转换为 pb 文件
- powershell - 如何阻止我的 youtube-dl 脚本循环播放?
- javascript - 如何将对象的键和值转换为逗号分隔的字符串?
- jquery - 带有历史记录的可链接选项卡 - 后退按钮问题
- driver - Windows 驱动程序:使用命令行工具安装旧版硬件
- php - 如何返回随机键数组?
- javascript - 我们如何在事件 jquery 中绑定事件?
- javascript - 从ajax发送json数组以查看spring mvc的困难
- jupyter-notebook - 在所有 Jupyter 笔记本单元的开头自动插入 %%time?