我有一张叫做“居民”的桌子,里面有住在不同公寓楼的居民的信息。这就是从这个表中选择所有值的样子-
SELECT * FROM RESIDENTS;
aptid | aptnum | ssn
---------+-----------------+----------------
100 | 1 | 641072301
100 | 2 | 699021306
100 | 3 | 699021306
100 | 1 | 699021306
200 | 1 | 132429609
200 | 1 | 641072301
300 | 1 | 641072301
我想选择所有在不同综合楼租住三套以上公寓的居民的社保号码。因此,例如,ssn为“641072301”的住户将显示在查询中,因为此人在复杂ID 100、200、300中租出至少三个单元,而社会ID为“699021306”的住户将不会显示,因为即使他们租出三个不同的公寓,但他们都在同一个单元(ApID)内。所以这个案子的结果是-
ssn
---------+
641072301
(1 row)
这就是我所拥有的,但它不能给我我想要的-
SELECT r1.ssn
FROM Residents r1
, Residents r2
WHERE r1.aptID <> r2.apt.ID;
最佳答案
试试这个:
SELECT ssn
FROM Residents
GROUP BY ssn
HAVING COUNT(DISTINCT aptid) >= 3
关于mysql - 简单查询表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42675849/