表数据如下,我想用Name选择更新日期的最小值。如果相邻名称相同,则需要合并名称。和按更新日期升序选择记录
Name UpdatedDate
L 05-May-2022
S 09-May-2022
S 09-May-2022
A 10-May-2022
A 15-May-2022
L 16-May-2022
S 17-May-2022
S 19-May-2022
K 01-May-2022
预期输出
Name UpdatedDate
K 01-May-2022
L 05-May-2022
S 09-May-2022
A 10-May-2022
L 16-May-2022
S 17-May-2022
假设:
- 你的日期总是按升序排列,AND 你的SQL Server版本支持LEAD和Lag函数
你可以试试:
SELECT NAME, UPDATEDDATE
FROM
(SELECT NAME, UPDATEDDATE, LAG(NAME, 1, 'DEFAULTVALUE') OVER (ORDER BY UPDATEDDATE) AS LAGNAME) T
WHERE T.NAME <> T.LAGNAME
使用lag来查找哪些行属于同一个"组"。基于Name列,然后取第一行,根据假设1,第一行也应该包含最早的日期。
使用组By。Select Name, UpdatedDate from YourTable Group By Name, UpdatedDate