我有一张名为居民的桌子,其中包括居住在不同公寓大楼的居民的信息。这就是从这个表中选择所有值的样子 -
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中出租至少三个单位,其中具有社交“699021306”的人将不会显示因为,即使他们出租三个不同的公寓,他们都在同一个单位(aptID)。所以在这种情况下的结果将是 -
ssn
---------+
641072301
(1 row)
这就是我所拥有的,但它并没有给我我想要的东西 -
SELECT r1.ssn
FROM Residents r1
, Residents r2
WHERE r1.aptID <> r2.apt.ID;
答案 0 :(得分:3)
试试这个:
SELECT ssn
FROM Residents
GROUP BY ssn
HAVING COUNT(DISTINCT aptid) >= 3