我一直在寻找问题的解决方案,但我只能找到如何在 SQL 中获取重复行并返回重复项已匹配的字段,但我找不到选择另一行的解决方案。
我有以下 SQL 查询:
SELECT * FROM Computer
结果(仅与此问题相关):
ComputerID,ComputerCN
3,testmachine
5,testmachine
到目前为止我有以下疑问:
SELECT COUNT(*), ComputerCN
FROM Computer
GROUP BY ComputerCN
HAVING COUNT(*) > 1;
结果:
(no column name),ComputerCN
2, testmachine
因此使用上面的查询我知道有两行字段 ComputerCN 是重复的。我现在需要的不是返回 ComputerCN,而是返回重复值的 ComputerID。我想要的结果是:
ComputerID
3
5
我一直在尝试在查询中包含 ComputerID,如下所示:
SELECT COUNT(*), ComputerCN, ComputerID
FROM Computer
GROUP BY ComputerCN, ComputerID
HAVING COUNT(*) > 1;
但我相信通过这样做,它会尝试找到 ComputerCN 和 ComputerID 重复的匹配项,但事实并非如此。
如何根据 ComputerCN 中的重复值返回 ComputerID 列表?
选择计算机ID 来自计算机 其中 ComputerCN IN ( 选择电脑CN 来自计算机 按ComputerCN分组 计数 (*) > 1 );