有这样一个表TABLE
就是要取出ABCD这四列 
ABCD组合起来肯定是惟一的
但是 ABC相同情况下 只需要取出最大D的这一行数据就好
例如:
对于 ABCD ----------------------------------------------------------
|   A    |    B   |   C    |   D    |       |       |       |
----------------------------------------------------------
|   11    |   22    |    33   |    11   |       |       |       |
----------------------------------------------------------
|   11    |   22    |    33   |    22   |       |       |       |
----------------------------------------------------------
|   11    |   22    |    33   |    33   |       |       |       |
----------------------------------------------------------
只需要取出
|   11    |   22    |    33   |    33   |       |       |       |就好
对于下面这个----------------------------------------------------------
|   A    |    B   |   C    |   D    |       |       |       |
----------------------------------------------------------
|   11    |   22    |    33   |    11   |       |       |       |
----------------------------------------------------------
|   11    |   22    |    33   |    22   |       |       |       |
----------------------------------------------------------
|   11    |   22    |    33   |    33   |       |       |       |
----------------------------------------------------------
|   22    |   22    |    33   |    11   |       |       |       |
----------------------------------------------------------
|   22    |   22    |    33   |    22   |       |       |       |
----------------------------------------------------------
|   33    |   22    |    33   |    11   |       |       |       |
----------------------------------------------------------
|   33    |   22    |    33   |    22   |       |       |       |
----------------------------------------------------------
|   44    |   22    |    33   |    11   |       |       |       |
----------------------------------------------------------
|   44    |   22    |    33   |    22   |       |       |       |
----------------------------------------------------------
|   55    |   22    |    33   |    11   |       |       |       |
----------------------------------------------------------
需要取出
|   11    |   22    |    33   |    33   |       |       |       |
----------------------------------------------------------
|   22    |   22    |    33   |    22   |       |       |       |
----------------------------------------------------------
|   33    |   22    |    33   |    22   |       |       |       |
----------------------------------------------------------
|   44    |   22    |    33   |    22   |       |       |       |
----------------------------------------------------------
|   55    |   22    |    33   |    11   |       |       |       |
----------------------------------------------------------请帮忙写下这个SQL语句
运行ok的话马上结贴给分!
多谢!!!SQL语句

解决方案 »

  1.   


    SQL> select * from test;        S1         S2         S3         S4
    ---------- ---------- ---------- ----------
            11         22         33         11
            11         22         33         22
            11         22         33         33
            11         22         33         44
           111        222        333        111
           111        222        333        222
           111        222        333        333
           111        222        333        444
          1111       2222       3333       1111
          1111       2222       3333       4444
          1111       2222       3333       222211 rows selected.SQL> select * from test where rowid in (select max(rowid) from test group by s1 || s2 || s3);        S1         S2         S3         S4
    ---------- ---------- ---------- ----------
           111        222        333        444
          1111       2222       3333       2222
            11         22         33         44SQL> 
      

  2.   

    再问一下如果这个表里面不只有ABCD的
    是需要取出ABCDE的要求依然是一样例如:
    对于 ABCDE  ----------------------------------------------------------
    |   A    |    B   |   C    |   D    |     E  |       |       |
    ----------------------------------------------------------
    |   11    |   22    |    33   |    11   |  as     |       |       |
    ----------------------------------------------------------
    |   11    |   22    |    33   |    22   |     sa  |       |       |
    ----------------------------------------------------------
    |   11    |   22    |    33   |    33   |   ad    |       |       |
    ----------------------------------------------------------
    只需要取出
    |   11    |   22    |    33   |    33   |   ad    |       |       |就好
    如果增加了E列
    用max(rowid)还依然有效么?
    会不会D和E一起组合起来 找最大的?