我有一个名为DynamicText
的表格,其中包含以下字段:DynamicID
,Content
,Timestamp
和DynamicTextEnum
。
我正在尝试设计一个查询,该查询将根据Timestamp
从按DynamicTextEnum
分组的每个组中选择最新记录。
例如:
Enum Timestamp
-----------------
1 1/10/2012
1 2/10/2012
2 1/10/2012
3 3/10/2012
2 3/10/2012
3 4/10/2012
所以结果如下:
Enum Timestamp
-----------------
1 2/10/2012
2 3/10/2012
3 4/10/2012
我目前根据Enum简单SELECTS TOP 1
他们,并根据DESC顺序命令他们
Timestamp
但是当我需要所有枚举时它不起作用。有什么想法吗?
答案 0 :(得分:2)
;WITH cte AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY DynamicTextEnum ORDER BY Timestamp DESC) AS rn
FROM DynamicText
)
SELECT *
FROM cte
WHERE rn = 1
答案 1 :(得分:0)
看看这个问题并回答:
Efficiently select top row for each category in the set
您可以执行子查询以获取枚举/时间戳对,并将其与整行连接。假设您没有任何给定枚举的重复时间戳。