gpt4 book ai didi

sql - 如何获取sql server中的最新行

转载 作者:行者123 更新时间:2023-12-04 22:29:34 25 4
gpt4 key购买 nike

我有一个这样的表:

id      start       end
------------------------------
1 2013-04-08 null
2 2013-04-01 null
2 2012-04-01 2013-04-01
3 2012-04-01 2013-04-01
4 2012-04-01 2013-04-01
4 2011-04-01 2012-04-01

我想得到这样一张表:

id  start       end
-----------------------------
1 2013-04-08 null
2 2013-04-01 null
3 2012-04-01 2013-04-01
4 2012-04-01 2013-04-01

所以我希望为每个 id 获取一行,其中包含最新信息。

如何编写查询?

最佳答案

SQL Server 支持公用表表达式窗口函数ROW_NUMBER() 对每组的记录进行排序,这是过滤记录的基础。

WITH records
AS
(
SELECT ID, [Start], [End],
ROW_NUMBER() OVER(PARTITION BY ID ORDER BY [START] DESC) rn
FROM TableName
)
SELECT ID, [Start], [End]
FROM records
WHERE rn = 1

关于sql - 如何获取sql server中的最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15884841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com