我有一張看起來像這樣的表:
id | name | address | code
----------- -------------------------- -------------------- ----------
101 | joe smith | 1 long road | SC1
102 | joe smith | 6 long road | SC1
103 | amy hughes | 5 hillside lane | SC5
104 | amy hughes | 5 hillside lane | SC5
我想回到那些基于重復的行name和code,但有不同的address領域。
我最初有這樣的事情(它在name, address and code列中查找重復項:
SELECT name, address, code, count(*)
FROM table_name
GROUP BY 1,2,3
HAVING count(*) >1;
有沒有一種方法,我可以在上面擴展到具有相同的唯一回傳行name和code而不同的address領域?
在我上面的示例資料中,我只想回傳:
id | name | address | code
----------- -------------------------- -------------------- ----------
101 | joe smith | 1 long road | SC1
102 | joe smith | 6 long road | SC1
uj5u.com熱心網友回復:
address從選擇串列中洗掉GROUP BY并使用count(DISTINCT):
SELECT name, code, count(DISTINCT address)
FROM table_name
GROUP BY name, code
HAVING count(DISTINCT address) > 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326900.html
標籤:PostgreSQL
