Oracle11g Oracle中列的重复组合

Oracle11g Oracle中列的重复组合,oracle11g,Oracle11g,我有一个表,其中的数据如下所示,对于每个PONUM和站点,LINENUM和RCPTNUM的组合应该是唯一的 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

我有一个表,其中的数据如下所示,对于每个PONUM和站点,LINENUM和RCPTNUM的组合应该是唯一的

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  
试试这个:

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 ;

你应该加上你想要的东西。寻找如何规范化给定的表?在构建识别“重复项”的查询时获得帮助?您的问题是什么?可能的重复项
select PONUM, LINENUM, RCPTNUM, SITE
from yourTable
group by PONUM, LINENUM, RCPTNUM, SITE
having count(1) > 1