2016-12-28 49 views
0

我有一個表格,其數據如下,其中LINENUM和RCPTNUM的組合對於每個PONUM和SITE都應該是唯一的。Oracle中列的重複組合

PONUM LINENUM RCPTNUM SITE 
1000  1  1  XXX 
1000  1  2  XXX 
1000  1  3  XXX 
1000  2  1  XXX 
1000  2  1  XXX 
1001  1  1  XXX 
1001  1  1  XXX 

輸出應顯示重複的組合

PONUM LINENUM RCPTNUM SITE 
1000 2  1  XXXX 
1001 1  1  XXXX 
+2

您應該添加你所要求的。尋找如何規範化給定的表?在構建標識「重複」的查詢時獲得幫助? – rpy

+0

你的問題是什麼? – additionster

+0

可能的重複[如何在Oracle中的表中查找重複值?](http://stackoverflow.com/questions/59232/how-do-i-find-duplicate-values-in-a-table-in -Oracle) – Aleksej

回答

0

列表試試這個:

select PONUM, 
     LINENUM, 
     RCPTNUM , 
     SITE 
from 
(--Preparing dataset 
with tbl(PONUM, LINENUM, RCPTNUM ,SITE) as 
(select 1000,  1 ,  1 ,  'XXX' from dual 
UNION ALL 
select 1000,  1,  2,  'XXX' from dual 
UNION ALL 
select 1000,  1,  3,  'XXX' from dual 
UNION ALL 
select 1000,  2,  1,  'XXX' from dual 
UNION ALL 
SELECT 1000,  2,  1,  'XXX' from dual 
UNION ALL 
Select 1001,  1,  1,  'XXX' from dual 
UNION ALL 
Select 1001,  1,  1,  'XXX' from dual) 
---Dataset end 
---Query 
select PONUM, 
     LINENUM, 
     RCPTNUM,SITE , 
     row_number()over(partition by PONUM, LINENUM,RCPTNUM,SITE order by PONUM) rnk 
from tbl 
) 
where rnk = 2 ; 
0
select PONUM, LINENUM, RCPTNUM, SITE 
from yourTable 
group by PONUM, LINENUM, RCPTNUM, SITE 
having count(1) > 1