【问题标题】:Oracle reduce result set on field duplicationOracle减少字段重复的结果集
【发布时间】:2016-09-27 08:19:13
【问题描述】:

我在 Oracle (12c) 中有一个 select 的结果集,如下所示:

GROUP_ID    NAME    ORDERING
       1      AA           0
       1      AA           1
       1      AB           2
       1      AC           3
       2      BA           1
       2      BA           2
       2      BB           3
       2      BC           4

我不知道如何减少结果集以删除基于一列的行,同时保留其他字段。预期结果如下所示:

GROUP_ID    NAME    ORDERING
       1      AA           1
       1      AB           2
       1      AC           3
       2      BA           2
       2      BB           3
       2      BC           4

我尝试使用group by 解决它,但它摆脱了必需的字段排序。我不是window functions 的专家,但我认为这可能是一种有效的尝试。

【问题讨论】:

    标签: oracle window-functions


    【解决方案1】:

    从你的数据看来,你只需要:

    select group_id, name, max(ordering)
    from yourTable
    group by group_id, name
    

    【讨论】:

    • 谢谢!我想我把问题复杂化了......我必须再等 8 分钟才能接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    相关资源
    最近更新 更多