sql - 如何查找多个列值之间的差异
问题描述
我有一张表作为问题集,其中包含多个问题和答案。多个用户给出了答案。我想找到用户之间的问题或答案不同的问题集 ID。例如,1 个问题集没有区别,因为所有用户给出的问题和答案的相同组合,但问题集 2 不同。
解决方案
你试过EXISTS
函数吗?
SELECT DISTINCT questionset
FROM table_name tab1
WHERE (NOT EXISTS (SELECT 1
FROM table_name tab2
WHERE tab1.questionset = tab2.questionset
AND tab1.question = tab2.question
AND tab1.answer = tab2.answer
AND tab1.user_id <> tab2.user_id )
OR NOT EXISTS (SELECT 1
FROM table_name tab3
WHERE tab1.questionset = tab3.questionset
AND tab1.question = tab3.question
AND tab1.user_id <> tab3.user_id )) ;
推荐阅读
- css - 我有一组渲染的图像,但是当试图让它弯曲时,内容太大了
- azure - 如何使用 terraform 构建一个空的 Azure 函数?
- python - 尝试创建从多个文件加载并将数据拆分为训练/验证的 tensorflow 数据集管道时出现 RAM 问题
- c# - C# Json:对字母数字字符串进行排序
- vba - 使用 VBA ActiveX 将 Excel 列转换为文本
- windows - 批量提取文件大小(以 mb 为单位),然后将其用作进一步命令的条件
- android - ui中再次收集StateFlow最后一个值
- javascript - (Angular 12)目标环境不支持动态 import() 语法,因此无法在脚本中使用外部类型“模块”
- python - 连接大型 numpy 数组的最有效方法
- python - 从时间序列数据点创建每小时存储桶