gpt4 book ai didi

sql - Tsql 从表中获取最新记录

转载 作者:行者123 更新时间:2023-12-05 00:24:52 24 4
gpt4 key购买 nike

我有这张 table :

Location                      date                temp

1 12-12-2009 19
1 14-12-2009 21
1 13-12-2009 17
2 12-12-2009 18
2 14-12-2009 16
2 18-12-2009 12
2 15-12-2009 14

现在我想为所有位置选择最新的(最新日期)行,所以在他的示例第 2 行和第 7 行。
我怎样才能做到这一点?

我可以为 1 个位置选择最新的和单个位置的前 1 个日期,我尝试按位置、日期分组,但后来我想念温度....

亲切的问候,
米歇尔

最佳答案

看看这个

DECLARE @Table TABLE(
Location INT,
Date DATETIME,
Temp INT
)

INSERT INTO @Table (Location,Date,Temp) SELECT 1, '12 Dec 2009', 19
INSERT INTO @Table (Location,Date,Temp) SELECT 1, '14 Dec 2009', 21
INSERT INTO @Table (Location,Date,Temp) SELECT 1, '13 Dec 2009', 17

INSERT INTO @Table (Location,Date,Temp) SELECT 2, '12 Dec 2009', 18
INSERT INTO @Table (Location,Date,Temp) SELECT 2, '14 Dec 2009', 16
INSERT INTO @Table (Location,Date,Temp) SELECT 2, '18 Dec 2009', 12
INSERT INTO @Table (Location,Date,Temp) SELECT 2, '15 Dec 2009', 14


SELECT t.*
FROM @Table t INNER JOIN
(
SELECT Location,
MAX(Date) MaxDate
FROM @Table
GROUP BY Location
) MaxDates ON t.Location = MaxDates.Location
AND t.Date = MaxDates.MaxDate
ORDER BY 1

您可能唯一需要注意的是,当给定位置的 maxdat 可能出现多次时,连接将返回多个位置、日期组合的结果。

您可能想要决定如何选择这些结果中的哪一个或您想要返回的所有结果。

关于sql - Tsql 从表中获取最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1530763/

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