sql – 按最大值分组时选择不同的行
发布时间:2020-05-24 12:30:29 所属栏目:MsSql 来源:互联网
导读:我目前有下表: ID | Name | EventTime | State1001 | User 1 | 2013/07/22 00:00:05 | 151002 | User 2 | 2013/07/23 00:10:00 | 1001003 | User 3 | 2013/07/23 06:15:31 | 351001
|
我目前有下表: 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 解决方法在支持分析函数的数据库中,您可以使用row_number():select *
from (
select row_number() over (partition by ID
order by EventTime desc) as rn,*
from YourTable
) as SubQueryAlias
where rn = 1 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
