sql – 按最大值分组时选择不同的行

前端之家收集整理的这篇文章主要介绍了sql – 按最大值分组时选择不同的行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前有下表:
ID   |  Name    |  EventTime            |  State
1001 |  User 1  |  2013/07/22 00:00:05  |  15
1002 |  User 2  |  2013/07/23 00:10:00  |  100
1003 |  User 3  |  2013/07/23 06:15:31  |  35
1001 |  User 1  |  2013/07/23 07:13:00  |  21
1001 |  User 1  |  2013/07/23 08:15:00  |  25
1003 |  User 3  |  2013/07/23 10:00:00  |  22
1002 |  User 2  |  2013/07/23 09:18:21  |  50

我需要的是上次事件时间中每个不同用户标识的状态,类似于以下内容

ID   |  Name    |  EventTime            |  State
1001 |  User 1  |  2013/07/23 08:15:00  |  25
1003 |  User 3  |  2013/07/23 10:00:00  |  22
1002 |  User 2  |  2013/07/23 09:18:21  |  50

我需要类似下面的东西,但我不能得到我需要的东西.

SELECT ID,Name,max(EventTime),State
FROM MyTable
GROUP BY ID

@R_403_323@

支持分析函数数据库中,您可以使用row_number():
select  *
from    (
        select  row_number() over (partition by ID 
                                   order by EventTime desc) as rn,*
        from    YourTable
        ) as SubQueryAlias
where   rn = 1
原文链接:https://www.f2er.com/mssql/77791.html

猜你在找的MsSQL相关文章