我的資料看起來像:
| 會員ID | Housing_ID | 國民身份證 | 家庭關系 |
|---|---|---|---|
| 1 | 1 | 3214565 | 頭 |
| 2 | 1 | 1234567 | 妻子 |
| 3 | 1 | 1223344 | 太陽 |
| 4 | 1 | 3224451 | 太陽 |
| 5 | 1 | 5432175 | 女兒 |
| 1 | 2 | 1223344 | 頭 |
| 2 | 2 | 4321678 | 妻子 |
| 3 | 2 | 4356723 | 太陽 |
| 1 | 3 | 3214565 | 頭 |
| 2 | 3 | 1234557 | 兄弟 |
| 1 | 4 | 7653432 | 頭 |
| 2 | 4 | 3224451 | 孫女 |
正如你所看到的,不同的房子有重復的國民身份證:
1- the member 3 of house 1 with National ID 1223344 (sun) is (head) of house 2,
2- the member 4 of house 1 with National ID 3224451 (sun) is (Grand daughter) of house 4
我必須指定所有重復的場景才能洗掉它,我通過鍵入 : 來識別重復select National ID , count(*) from my table group by National ID having count(*)>1并得到以下輸出:
| 國民身份證 | 數數 |
|---|---|
| 1223344 | 2 |
| 3224451 | 2 |
我厭倦了查詢重復,所以輸出看起來像:
| 國民身份證 | 住房 ID 1 | 關系 | 住房 ID 2 | 關系 |
|---|---|---|---|---|
| 1223344 | 1 | 太陽 | 2 | 頭 |
| 3224451 | 1 | 太陽 | 4 | 孫女 |
謝謝
uj5u.com熱心網友回復:
對于 count(*) = 2 的 National_ID,以下查詢應提供預期結果:
select National ID
, array_agg(Housing_ID)[1] AS "Housing ID 1"
, array_agg(Family_relation)[1] AS "Relation 1"
, array_agg(Housing_ID)[2] AS "Housing ID 2"
, array_agg(Family_relation)[2] AS "Relation 2"
from my table
group by National_ID
having count(*) = 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/384203.html
標籤:sql PostgreSQL的 代码重复
上一篇:為每個ID插入缺少的日期行
下一篇:洗掉大表重復項的sql查詢優化
