2017-03-08 12 views
2

Ich habe eine Tabelle namens Bewohner, die Informationen über Bewohner in verschiedenen Wohnkomplexen enthält. Dies ist, was aus dieser Tabelle werden alle Werte der Auswahl aussehen würde -Einfache Abfrage einer Tabelle

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 

ich die Sozialversicherungsnummern aller Bewohner auswählen möchten, die in verschiedenen Komplexe mehr als drei Wohnungen werden vermietet. So wird zum Beispiel Bewohner mit der SSN '641072301' in der Abfrage angezeigt, weil diese Person mindestens drei Einheiten in der komplexen ID 100, 200, 300 vermietet, wobei die Person mit dem sozialen Status '699021306' nicht angezeigt wird up, denn obwohl sie drei verschiedene Wohnungen vermieten, befinden sie sich alle innerhalb derselben Einheit (aptID). so dass das Ergebnis in diesem Fall wäre -

ssn    
---------+ 
641072301 

(1 row) 

Das ist, was ich habe, aber es ist mir nicht geben, was ich will -

SELECT r1.ssn 
    FROM Residents r1 
    , Residents r2 
WHERE r1.aptID <> r2.apt.ID; 
+0

Siehe http : //meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Strawberry

+1

@ Strawberry: Ich denke, die SO hat mehr als genug Informationen zur Verfügung gestellt, um sie zu unterstützen, meinst du nicht? – Stephen

+0

@Stephen Wenn ich das dachte, hätte ich den Kommentar wirklich nicht gepostet. – Strawberry

Antwort

3

Try this:

SELECT ssn 
FROM Residents 
GROUP BY ssn 
HAVING COUNT(DISTINCT aptid) >= 3 
+0

Das ist perfekt! – pokemongirl1234

+0

können Sie mir bei einer ähnlichen Frage hier helfen - http://stackoverflow.com/questions/42686382/implementation-of-the-front-end-of-a-database-stored-procedure – pokemongirl1234