【问题标题】:SQL for grouping data in Oracle用于在 Oracle 中对数据进行分组的 SQL
【发布时间】:2018-06-07 09:21:18
【问题描述】:

我在 Oracle db 中有这个表,我从中将数据迁移到我的架构。我必须在许多线程中迁移它,但我必须在线程中有特定 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 不在(迁移期间选择所有者)”

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    也许这个可行:

    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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 不是真的,最难的是这个 /* 在这里指定所有者,或者从某个地方选择所有者 */ ,我只能在 EVENTS 表上操作
      • 那么,您可以直接指定EVENT_OWNER编号。类似于“(1, 4, 5) 中的 EVENT_OWNER”
      • 老兄(@michealAtmi),你解释你的自我真的很糟糕。要找到能够帮助您处理您提供的信息的人将是不可能的。
      • 你在原帖中有一个例子
      猜你喜欢
      • 2017-05-02
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 2021-02-14
      • 2020-06-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      相关资源
      最近更新 更多