我工作的PostgreSQL的桌子上有這樣的結構不同:選擇行,其中第1列的值是相同的,但第2列的值是PostgreSQL的
________________
|project|person|
|_______|______|
|1 |P1 |
|1 |P2 |
|2 |P3 |
|2 |P3 |
|3 |P4 |
|_______|______|
我想編寫一個SQL查詢來選擇只有一個項目有多個人的行。換句話說,我想選擇項目相同但行人不同的所有行,排除其他行。在我的例子中,它將返回只有兩個第一行:
________________
|project|person|
|_______|______|
|1 |P1 |
|1 |P2 |
|_______|______|
我不能包裹我的頭圍繞此。是看到this question這基本上是相反的,但我不知道如何使它爲我工作。
我試着撥弄COUNT或HAVING很長一段時間,但我無法掌握如何構建這個查詢的邏輯。比如我想:
SELECT t.person, t.project
FROM table t
GROUP BY r.ide_proj, r.ide_pers
HAVING COUNT(t.person) > 1
,但是這給了我奇怪的結果,包括行whre一個項目只有一個人,或者反之亦然。
有人能幫我解決這個小問題嗎?
非常感謝!
難道你不能加上預期的結果嗎?向我們展示您當前的查詢嘗試! – jarlh
你是否嘗試過這樣的事情:'select * from YOURTABLE have count(person)> 1'? – AlainIb
@Alainlb' count(獨特的人)> 1'項目2有p3兩次。 – xQbert