用于在Oracle中对数据进行分组的SQL

时间:2018-06-07 09:21:18

标签: sql oracle

我在Oracle数据库中有这个表,我将数据迁移到我的模式。我必须在许多线程中迁移它,但我必须在线程上有特定event_owner的数据..

desc EVENTS
Name             Null     Type         
---------------- -------- ------------ 
EVENT_OWNER                 NUMBER       
EVENT_SOURCE NOT NULL NUMBER       
EVENT_CATEGORY                 VARCHAR2(14) 


EVENT_OWNER EVENT_SOURCE EVENT_CATEGORY
1           A            B   
5           A            C
3           A            B
1           X            E
4           A            B
5           A            C
7           A            C
8           A            C

是否有可能(以及如何做到这一点)来创建一个将返回例如三个所有者及其所有事件的查询,例如:

1           A            B   
1           X            E

4           A            B

5           A            C
5           A            C

(迁移过程将在迁移过程中标记所有者,因此我可以附加到该查询

  

“和EVENT_OWNER没有(迁移期间选择所有者)”

2 个答案:

答案 0 :(得分:0)

也许这个有效:

with owners as (
  select distinct EVENT_OWNER
  from EVENTS
  where rownum<=3
  -- "and EVENT_OWNER not in (select owners during migration)"
  )
select e.*
from EVENTS e
  join owners o
    on e.EVENT_OWNER=o.EVENT_OWNER
order by e.EVENT_OWNER

答案 1 :(得分:0)

我认为是这样的。但是我想知道这样简单的事情是不是你想要的......

select * from EVENTS
where EVENT_OWNER in (/* specify owners here, or select owners from somewhere */)
order by EVENT_OWNER