You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何按Name分组取最新Date_Time的TOP 1数据?

解决方案:获取每个分组的最新记录

针对你需要按Name分组,取每组中Date_Time最新(降序TOP 1)记录的需求,这里给你几个在SQL Server中常用的实现方式,你可以根据自己的SQL Server版本和场景选择:

方法1:使用ROW_NUMBER()窗口函数(兼容性最好)

这是最通用的写法,几乎适用于所有SQL Server版本,逻辑清晰也容易扩展:

SELECT Name, Fee, Date_Time
FROM (
    SELECT 
        Name, 
        Fee, 
        Date_Time,
        -- 按Name分组,每组内按Date_Time倒序编号
        ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Date_Time DESC) AS row_num
    FROM YourTableName -- 替换成你的实际表名
) ranked_data
WHERE row_num = 1;

方法2:使用TOP 1 WITH TIES(写法更简洁)

如果追求代码简洁,可以用这个方式,它会自动返回所有分组的第一条记录:

SELECT TOP 1 WITH TIES
    Name, Fee, Date_Time
FROM YourTableName -- 替换成你的实际表名
ORDER BY ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Date_Time DESC);

方法3:使用QUALIFY子句(SQL Server 2022+)

如果你用的是SQL Server 2022及以上版本,QUALIFY子句可以让你不用嵌套子查询,写法更直观:

SELECT Name, Fee, Date_Time
FROM YourTableName -- 替换成你的实际表名
QUALIFY ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Date_Time DESC) = 1;

这几种方法都能得到你想要的结果集,记得把YourTableName替换成你实际的表名哦~

内容的提问来源于stack exchange,提问作者Nitesh Suthar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:31:40