我需要在SQL中做一些事情,我现在很困惑!
所以我有这样的事情:
idEvent idService dateCreated
------- --------- -----------
1 1 2012-01-01
2 1 2012-02-02
3 2 2012-01-01
4 2 2012-02-02
Run Code Online (Sandbox Code Playgroud)
该idEvent是自动递增.
我需要得到的是每个最大的行(按顺序排列dateCreated DESC)idService.
所以我需要得到这个结果:
idEvent
-------
2
4
Run Code Online (Sandbox Code Playgroud)
您可以使用公用表表达式将"行号"应用于每个idService/dateCreated组合.您没有指定表名,因此您必须解决此问题.
;WITH x AS
(
SELECT idEvent, idService, dateCreated, rn = ROW_NUMBER() OVER
(PARTITION BY idService ORDER BY dateCreated DESC)
FROM dbo.table_something_like_this
)
SELECT idEvent, idService, dateCreated
FROM x
WHERE rn = 1;
Run Code Online (Sandbox Code Playgroud)