我有一张这样的桌子。
A B
_ _
1 100
1 101
2 105
2 105
2 104
3 106
我需要输出B值出现相同次数的所有A值。因此,预期产出:
A
_
1
3
这是因为1 - 100
和1 - 101
每次出现一次。 2
是异教徒,因为2 - 105
出现两次,2 - 104
只出现一次。 3
没问题,因为它只有一个项目,106
。
到目前为止我的解决方案:
SELECT *
FROM Table t1
JOIN Table t2
ON t2.A = t1.A
WHERE t1.B = t2.B;
答案 0 :(得分:0)
使用1
和GROUP BY
编写一个只返回重复计数为COUNT(*)
的对的查询。然后将其用作子查询,以便只返回不同的A
值。
SELECT DISTINCT A
FROM (SELECT A, B
FROM Table
GROUP BY A, B
HAVING COUNT(*) = 1) AS x