呼叫所有 AS400 SQL 专家 - 想象一下你有一个这样的数据库
客户 | 数据1 |
---|---|
ABC | 123 |
ABC | 123 |
ABC | 123 |
EFG | 456 |
LMN | 678 |
QRS波 | 555 |
QRS波 | 556 |
XYZ | 789 |
XYZ | 789 |
XYZ | 999 |
我正在寻找一种 SQL 解决方案,它将对 Client 字段进行分组并检查 DATA 1 并识别特定客户端内任何 DATA 1 不同的所有实例。例如 - - 客户端 ABC - 客户端 ABC 的所有 DATA 1 都相同,因此请勿选择。 -Client EFG - 单个,因此 DATA 1 将始终匹配,因此请勿选择。 -Client LMN - 单个,因此 DATA 1 将始终匹配,因此请勿选择。 -客户端 QRS- 2 记录和 DATA 1 记录不匹配 -在 SQL 选择中包含所有内容 - 客户端 XYZ - 2 条记录相同,但有一条记录不匹配 - 将所有记录包含在 SQL 选择中。
所以最后我的 SQL 选择应该是这样的 -
客户 | 数据1 |
---|---|
QRS波 | 555 |
QRS波 | 556 |
XYZ | 789 |
XYZ | 789 |
XYZ | 999 |
也就是说,我有一个所有记录的列表,其中 DATA 1 在客户分组中不相同。
FWIW - 我已经测试了 UNIQUE、GROUP BY、HAVING COUNT 等......但我仍然发现自己陷入困境。 预先感谢您的任何和所有帮助。
FWIW - 我已经测试了 UNIQUE、GROUP BY、HAVING COUNT 等......但我仍然发现自己陷入困境。
您可以使用 CTE 或子查询来获取具有多个不同 data_1 值的客户端。
select *
from table1
where client in (
select client
from table1
group by client
having count(distinct data_1) > 1
)