表table1有3个字段a,b,c,表内容如下:
1 2 'a'
1 3 'b'
1 4 'c'
2 5 'd'
2 6 'e'
2 7 'f'
3 1 'g'其中a字段可能重复
现在要得到内容是
1 4 'c'
2 7 'f'
3 1 'g'即在第一个字段相同时,取第二个字段中最大的那些记录
select a,max(b),c from table1 group by a
不合法.请问这样的sql如何写? thanks.
1 2 'a'
1 3 'b'
1 4 'c'
2 5 'd'
2 6 'e'
2 7 'f'
3 1 'g'其中a字段可能重复
现在要得到内容是
1 4 'c'
2 7 'f'
3 1 'g'即在第一个字段相同时,取第二个字段中最大的那些记录
select a,max(b),c from table1 group by a
不合法.请问这样的sql如何写? thanks.
from table1 t1
inner join
(seelct a,max(b) as b from table1 group by a) t2
on t1.a=t2.a and t1.b=t2.b
from table1 t1,
(select a,max(b) as b from table1 group by a) t2
where t1.a =t 2.a and t1.b = t2.b
from(
select a,b,c
,row_number()over(partition by a order by b desc) rn
from table1
)
where rn=1
这样可能更快些!