当前位置: 代码迷 >> Oracle开发 >> 有一个看似简单的需求,请高手帮忙看看有没有办法实现,多谢了
  详细解决方案

有一个看似简单的需求,请高手帮忙看看有没有办法实现,多谢了

热度:13   发布时间:2016-04-24 07:36:39.0
有一个看似简单的需求,请高手帮忙看看有没有办法实现,谢谢了
有一个看似简单的需求,请高手帮忙看看有没有办法实现。
table
字段一,字段二
a,1
a,4
a,7
b,2
b,5
b,8
c,3
c,6
c,9
需求为:要查询字段一,并去掉重复的记录,并且以字段二顺序排序。
就本人个人认为该需求无法实现,大家也可以说说对这个需求的看法。
(希望大家最好能先测试一下自己的sql然后再发言)

------解决方案--------------------
比如说删除字段2除最大条外的纪录

SQL code
delete table cwhere no exists(select 1from (select 字段一,字段二       from (select a.*,row_number() over(partition by 字段一 order by 字段二 desc) rn                 from table a.*)       where rn=1     ) bwhere c.字段一=b.字段一 and c.字段二=b.字段二)
------解决方案--------------------
是想要这样的结果吗?如果不是请把相应的结果贴出来,请把想要的结果贴出来,你这样做,谁也无法明白你究竟想要什么。
SQL code
SQL> SELECT DISTINCT FIELD1, NULL "FIELD2", DR  2    FROM (  3          SELECT FIELD1,  4                 DENSE_RANK() OVER(ORDER BY FIELD1) "DR"  5            FROM TABLE_NAME T  6         )TTT  7  UNION  8  SELECT NULL,  9         FIELD2, 10         DR 11    FROM ( 12          SELECT FIELD2, 13                 DENSE_RANK() OVER(ORDER BY FIELD1) "DR" 14            FROM TABLE_NAME T 15         )TT 16   ORDER BY DR,1,2 DESC;FIELD1     FIELD2         DR------ ---------- ----------A                          1                7          1                4          1                1          1B                          2                8          2                5          2                2          2C                          3                9          3                6          3                3          312 rows selectedSQL>
  相关解决方案