科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道SQL语句:按a列分组后b列最大的所有列记录

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文将为大家介绍SQL语句:按a列分组后b列最大的所有列记录。

作者:赛迪网 Alice 来源:天新网 2008年4月14日

关键字: 数据库 SQL Server SQL Mssql

  • 评论
  • 分享微博
  • 分享邮件

    示例:test 表 a b c  

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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章