2017-03-08 12 views
2

私は、異なるアパートメント複合施設に住んでいる居住者に関する情報を含む居住者と呼ばれるテーブルを持っています。私は別の複合体でつ以上のアパートを借りるされている住民の全ての社会保障番号を選択したいテーブルの簡単な照会

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 

- これは、このテーブルからすべての値を選択すると、どのようになるかです。たとえば、「699021306」のソーシャルユーザーが表示されない場合、このユーザーが複合ID 100、200、300の少なくとも3つのユニットを借りているため、ssn '641072301'の居住者がクエリに表示されますたとえ彼らが3つの異なるアパートを借りていても、それらはすべて同じ単位(aptID)内にあるからです。したがって、この場合の結果は次のようになります -

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

(1 row) 

これは私が持っているものではありませんが、私が欲しいものを私に与えている -

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

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

@ストロベリー私はそう助力するために十分な情報以上を提供したと思います、あなたは思いませんか? – Stephen

+0

@Stephenもし私がそれを考えたら、私は本当にコメントを投稿していないでしょう。 – Strawberry

答えて

3

はこれを試してみてください:

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

これは完璧です! – pokemongirl1234

+0

ここで同様の質問をすることができますか?http://stackoverflow.com/questions/42686382/implementation-of-the-front-end-of-a-database-stored-procedure – pokemongirl1234

関連する問題