获取一组行中最旧的记录
Take oldest record in a set of rows
所以,我有这个问题,我在 table
中有这组记录
TemperatureID
CastingID
TemperatureDateTime
TemperatureValue
1421294
1073513
2021-01-07 11:53:00.000
1648
1421295
1073513
2021-01-07 11:54:00.000
1698
1421326
1073514
2021-01-07 22:00:00.000
1594
1421327
1073514
2021-01-07 22:11:00.000
1609
这重复了很多次。
我的问题是我必须只为每组 CastingID 获取最旧的记录,就像这样:
TemperatureID
CastingID
TemperatureDateTime
TemperatureValue
1421294
1073513
2021-01-07 11:53:00.000
1648
1421326
1073514
2021-01-07 22:00:00.000
1594
我尝试使用 DISTINCT 和 MIN 函数,但我无法获得我想要的结果,你能帮助我或提供一些例子吗?
你可以试试这个,
SELECT *
FROM (
SELECT
*
, RANK() OVER (PARTITION BY CastingID ORDER BY TemperatureDateTime ASC) RN
FROM TABLE_1
) A
WHERE RN = 1;
所以,我有这个问题,我在 table
中有这组记录TemperatureID | CastingID | TemperatureDateTime | TemperatureValue |
---|---|---|---|
1421294 | 1073513 | 2021-01-07 11:53:00.000 | 1648 |
1421295 | 1073513 | 2021-01-07 11:54:00.000 | 1698 |
1421326 | 1073514 | 2021-01-07 22:00:00.000 | 1594 |
1421327 | 1073514 | 2021-01-07 22:11:00.000 | 1609 |
这重复了很多次。 我的问题是我必须只为每组 CastingID 获取最旧的记录,就像这样:
TemperatureID | CastingID | TemperatureDateTime | TemperatureValue |
---|---|---|---|
1421294 | 1073513 | 2021-01-07 11:53:00.000 | 1648 |
1421326 | 1073514 | 2021-01-07 22:00:00.000 | 1594 |
我尝试使用 DISTINCT 和 MIN 函数,但我无法获得我想要的结果,你能帮助我或提供一些例子吗?
你可以试试这个,
SELECT *
FROM (
SELECT
*
, RANK() OVER (PARTITION BY CastingID ORDER BY TemperatureDateTime ASC) RN
FROM TABLE_1
) A
WHERE RN = 1;