2016-07-22 42 views
-1

所有,的Oracle SQL - 一组中查找值的情况下

我有一个表,如下所示:

Event_id  Event_Rank  Procedure  Modifier 
--------  ----------  ---------  -------- 
1    1.01   12345   AA 
1    1.02   12345   AB 
1    1.03   67890   ZZ 
2    2.01   12345   AA 
2    2.02   67890   ZZ 

我试图运行Oracle SQL查询中的发现组(Event_ID),其中有2个相同过程的任何实例。对于事件1,确实存在(前两行)

任何帮助将不胜感激。

TonyVan

回答

1

你可以尝试这样的事情:

with w_data as (
     select 1 event_id, 1.01 event_rank, 12345 c_procedure, 'AA' modifier from dual union all 
     select 1 event_id, 1.02 event_rank, 12345 c_procedure, 'AB' modifier from dual union all 
     select 1 event_id, 1.03 event_rank, 67890 c_procedure, 'ZZ' modifier from dual union all 
     select 2 event_id, 2.01 event_rank, 12345 c_procedure, 'AA' modifier from dual union all 
     select 2 event_id, 2.02 event_rank, 67890 c_procedure, 'ZZ' modifier from dual 
     ) 
    Select event_id, event_rank, c_procedure, modifier 
    from (
      select event_id, event_rank, c_procedure, modifier, 
        count(*) over (partition by event_id, c_procedure) dup_chk 
      from w_data 
     ) 
    where dup_chk > 1 
/

    EVENT_ID EVENT_RANK C_PROCEDURE MO 
    ---------- ---------- ----------- -- 
      1  1.01  12345 AA 
      1  1.02  12345 AB 

    2 rows selected. 
+0

完美!它给了我正在寻找的确切结果。 – TonyVan

相关问题