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

ZDNet软件频道 时间:2009-12-03 作者: | 赛迪网 我要评论()
本文关键词:Server 服务器 SQL
select t1.a,t1.b,t1.c from test t1 (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( ,row_number()over(partition by a order by b desc) rn from test

  1 5 abc

  2 6 bcd

  1 7 ade

  2 8 adc

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

  result a b c

  1 6 bcd

  2 8 adc

  可以使用如下语句:

  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

Server

服务器

SQL


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134