2017-03-09 281 views
0

我有一張表,我想知道重複記錄存在於同一列的位置。這些都是我的專欄,我想記錄下GROUP_ID或一週是相同的代碼和fweek和newcode不同同一列中的PGSQL重複記錄

Id newcode fweek code group_id week 
1 343001 2016-01 343  100  8 
2 343002 2016-01 343  100  8 
3 343001 2016-01 343  101  08 

需要的記錄

Id newcode fweek code group_id week 
3 343001 2016-01 343 101  08 
+0

1)詳細信息,如果{GROUP_ID,周}是一樣的,是不是也可以重複? 2)是否是唯一的ID? – joop

+0

是的id是唯一的 –

回答

0

要查找重複值我都加入了表本身。 ,我們需要將結果與代碼,fweek和newcode分組,以獲得多個重複行(如果存在)。我用max()來獲取最後插入的行。

你不需要使用的是不同的(對於不等式+ NULL是相同的)。如果您不想比較NULL,請使用<>運算符。

您在此處找到有關info

select r.* 
from your_table r 
where r.id in (select max(r.id) 
      from your_table r 
       join your_table r2 on r2.code = r.code and r2.fweek = r.fweek and r2.newcode = r.newcode 
      where 
      r2.group_id is distinct from r.group_id or 
      r2.week is distinct from r.week 
      group by r.code, 
        r.fweek, 
        r.newcode 
      having count(*) > 1)