求一这样一条SQL语句,困扰我好几天了!!
有如下表
表t
字段1,字段2,字段3
1       201    aa
1       201    bb
1       200    cc
2       301    dd
2       301    ee
2       300    ff
3       401    gg
3       401    hh
3       400    ii
想得到如下结果,
1       201    aa
2       301    dd
3       401    gg
也就是说字段2有重复的话,只取一个,我用max()查,它却把重复的全列出来了,
以上请高手指点啊!
------解决方案--------------------
select m.* from t m where not exists(select 1 from t where 字段1=m.字段1 and (字段2 > m.字段2 or (字段2 = m.字段2 and 字段3 < m.字段3))) order by m.字段1
------解决方案--------------------
select * from  
(
select  
t.*, ROW_NUMBER() over (partition by c1 order by c2 desc, c3) od
from t
) tt
where od = 1