您的位置:首页 > 数据库

sql语句:取按a列分组后,b列最大,的所有列的记录

2008-02-15 16:31 323 查看
例如:

test 表

abc
15abc
26bcd
17ade
28adc
若取按a列分组后,b列最大,的所有列的记录,

result

abc
16bcd
28adc
可以使用如下语句



select

*

from
test
where
b
in
(
select

max
(id)
from
test
group

by
a)



适用于所有数据库



select
t1.a,t1.b,t1.c



from
test t1



inner

join



(seelct a,
max
(b)
as
b
from
test
group

by
a) t2



on
t1.a
=
t2.a
and
t1.b
=
t2.b



适用于所有数据库



select
a,b,c



from
(



select
a,b,c



,row_number()
over
(partition
by
a
order

by
b
desc
) rn



from
test



)



where
rn
=
1

适用于oracle
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: