SQL:查找具有重复字段的行,然后选择另一个字段

问题描述 投票:0回答:1

我一直在寻找问题的解决方案,但我只能找到如何在 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 列表?

sql count
1个回答
1
投票

选择计算机ID 来自计算机 其中 ComputerCN IN ( 选择电脑CN 来自计算机 按ComputerCN分组 计数 (*) > 1 );

© www.soinside.com 2019 - 2024. All rights reserved.