表格中的示例数据用户:
ThisId ThatId
1 5
1 5
1 6
2 7
3 8
3 8
4 9
首先我得到重复ThisId的记录,所以:
SELECT
ThisId
FROM
Users
GROUP BY
ThisId
HAVING
COUNT(*) > 1
这有效并返回
ThisId
1
3
但是我只想要ThatId不同的记录。所以我的输出应该只是:
ThisId
1
因为具有ThisId 1的记录具有不同的ThatIds(5,6)。 ThisId 3的记录都有Thatid 8。
我几乎被困在这里,不知道如何实现这一点。
我希望你理解, 提前谢谢
答案 0 :(得分:4)
以下查询应该有效
SELECT
ThisId
FROM
Users
GROUP BY
ThisId
HAVING
COUNT(distinct ThatId) > 1
答案 1 :(得分:1)
这是答案。
SELECT
ThisId
FROM
Users
GROUP BY
ThisId
HAVING
MAX(ThatId) <> MIN (ThatId)
结果:
ThisId
-----------
1
答案 2 :(得分:0)
真的很简单,但这会有用吗?
SELECT
ThisId
FROM
Users
GROUP BY
ThisId
HAVING
COUNT(*) > 1
AND COUNT(DISTINCT ThatId) > 1