ORACLE或DB2下假如我有个表
A     B
----- -----
1     2
1     3
2     2我想用一条SQL,将B列中,COUNT数目大于1的记录(如B=2时的第1和第3条),删除A的值比较小的那一条(如第1和第3条比较起来,要删掉第3条)
得到的结果为
A     B
----- -----
1     2
1     3B列中,存在相等的值的个数不一定,可能大于2个也可能为0
A列中,不会存在B值相同而且A值相同的情况
请问应该怎么做,谢谢数据例子:
A     B
----- -----
1     2
1     3
2     2
3     1
3     2
0     1比方说这个数据
最后得到的结果是
A     B
----- -----
1     2
1     3
0     1

解决方案 »

  1.   

    select min(A),B from aaa group by B ;
      

  2.   


    delete t1 from tab t1 inner join tab t2
    where t1.B=t2.B and t1.A>t2.A;
      

  3.   

    delete from T where (A,B) in
    (select min(A) a,B b from T where B in 
    (select B from T group by B having count(*)>1)
    group by B)
    我没试,大致这个意思吧