【问题标题】:Oracle DISTINCT NUMERIC - NOT DISTINCT CLOB; ORA-00932 [duplicate]Oracle DISTINCT NUMERIC - NOT DISTINCT CLOB; ORA-00932 [重复]
【发布时间】:2014-06-12 14:30:10
【问题描述】:

请参阅this question

我有兴趣从EVENTLOG 中选择一个DISTINCT NUMERIC,它有一个来自EVENT_INFO_DETAIL 的伴随CLOB,这不是DISTINCT 选择。

换句话说,我有兴趣选择DISTINCT EVENTID_NBR,因为存在多个相同的数字,并且还希望看到与DISTINCT EVENTID_NBR 关联的CLOB。我不想以任何方式选择DISTINCT CLOB。我该怎么做呢?

例如,结果集可能如下所示:

EVENID_NBR    INPUT_ARGS (BYTE SIZE)

143           4096
143           3284
143           2162
143           2222
143           1024

我只想要一个EVENTID_NBR,因为我的结果集中需要一个有代表性的样本,但我还需要与DISTINCT EVENTID_NBR 一起选择的CLOB

有没有办法只选择每个EVENTID_NBR 中的第一个ROWID,还包括关联的CLOB

我是否应该选择DISTINCT EVENTID_NBR,然后尝试找到与我选择的EVENTID_NBR 关联的CLOB

【问题讨论】:

    标签: oracle distinct sqlplus numeric


    【解决方案1】:

    这通常使用窗口函数来完成:

    select evenid_nbr,
           input_args
    from (
      select evenid_nbr,
             input_args,
             row_number() over (partition by evenid_nbr order by rowid) as rn
      from event_info_detail
    ) t
    where rn = 1
    

    通过更改 order by 部分,您可以调整返回的 evenid_nbr。

    【讨论】:

    • 您能告诉我如何将现有查询与您的窗口函数答案集成吗?
    • @Mushy 您的问题中没有“现有查询”。
    猜你喜欢
    • 2015-10-24
    • 1970-01-01
    • 2012-05-12
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2022-10-24
    相关资源
    最近更新 更多