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

解决方案 »

  1.   

    比如说删除字段2除最大条外的纪录delete table c
    where no exists
    (
    select 1
    from (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.字段二)
      

  2.   

    楼主要查询的结果是不是如下呢?字段一,字段二 ,字段三,字段四          
    a        1        4      7
    b       2        5      8
    c       3        6       9
      

  3.   

    a,1  
    b,2  
    c,3 
    很简单a  1 
       4 
       7 
    b,2 
       5 
       8 
    c,3 
       6 
       9  
    也很简单(分析函数),不知道你要做什么
      

  4.   

    我有個類似的需求,大家看看咋整
    字段一,字段二,字段三
    a      1      8
    a      2      10
    b      1      2
    b      2      3
    b      3      12
    c      2      7
    c      4      9
    --------------
    最後的需求如下
    name      1    2    3    4 ...(根據字段二的不重復的值)
    a        8   10    0    0
    b        2   3     12   0
    c        0   7     0    9
    '''(根據字段一的不重復的值)
      

  5.   

    是想要这样的结果吗?如果不是请把相应的结果贴出来,请把想要的结果贴出来,你这样做,谁也无法明白你究竟想要什么。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          1
    B                          2
                    8          2
                    5          2
                    2          2
    C                          3
                    9          3
                    6          3
                    3          312 rows selectedSQL>