数据库模式组织如下:
ID | GroupID | VALUE
--------------------
1 | 1 | A
2 | 1 | A
3 | 2 | B
4 | 3 | B
在此示例中,我想获取所有具有重复值但不属于同一组的行。所以期望的结果集应该是 IDs (3, 4),因为它们不在同一组 (2, 3) 但仍然具有相同的 VALUE (B)。
我在编写 SQL 查询时遇到问题,希望得到任何指导。谢谢。
到目前为止,我正在使用 SQL Count,但不知道如何处理 GroupId。
SELECT *
FROM TABLE T
HAVING COUNT(T.VALUE) > 1
GROUP BY ID, GroupId, VALUE
最佳答案
最简单的方法是使用 EXISTS
:
SELECT
ID
FROM
MyTable T1
WHERE
EXISTS (SELECT 1
FROM MyTable
WHERE Value = t1.Value
AND GroupID <> t1.GroupID)
关于SQL查询以获取具有重复值但不属于同一组的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416335/