SQL实现在一张表中查出最新时间的结果集

本文介绍了一种使用SQL语句来获取每个ID对应的最新时间记录的方法。通过ROW_NUMBER()函数结合PARTITION BY和ORDER BY子句,可以有效地找出每个ID最新的时间戳及对应的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RT: SysID   ID   Time    Name                         SysID   ID    Time    Name 
      1      1    2013   小王                          1       1    2013    小王
      2      1    2012   小雨                          3       2    2013    小米 
      3      2    2013   小米      -------------->
      4      2    2012   小菊

SQL:
select * from
(SELECT ID,NAME,TIME,ROW_NUMBER () OVER (PARTITION BY ID ORDER BY Time desc) as flag FROM Table) cmj
where cmj.flag = 1

说明:
row_number()  顺序号码,  也就是 行号, 比如 1,2,3,4,5 这样的顺序。

over  语法需要,必须的。

partition by name, kecheng,score  是按照 name, kecheng,score   分区。

也就是 如果有 不同的 name, kecheng,score  , 这个 序号又重新从1开始计算。

order by rowid 是 排序方式, 也就是 最小的 rowid  , row_number()  是1,然后随着 rowid 的增加,  row_number() 不断递增
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值