Oracle减少字段重复的结果集

Posted

技术标签:

【中文标题】Oracle减少字段重复的结果集【英文标题】:Oracle reduce result set on field duplication 【发布时间】: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 的专家,但我认为这可能是一种有效的尝试。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢!我想我把问题复杂化了......我必须再等 8 分钟才能接受答案。

以上是关于Oracle减少字段重复的结果集的主要内容,如果未能解决你的问题,请参考以下文章

oracle 如何把同一个表的同一个字段按条件分成不同的字段查询出来结果集?例如:

Oracle plsql中文字段乱码,where条件中文字段搜不到结果集

将包含重复字段的结果集保存到目标表

Django在查询集结果上添加附加字段[重复]

oracle 结果集行转列,多行数据转为一行显示,第一列内容拼接生成字段名

oracle 存储过程,数据处理并返回结果集问题