sql 相同列获取最新一条数据
一、SqlServer
- 数据样图

- sql 语句
SELECT * FROM [WeChatApp].[dbo].[Templates] WHERE ID IN ( SELECT _hour.ID FROM ( SELECT *,ROW_NUMBER()OVER( partition by Name ORDER BY Type DESC) Rank FROM [WeChatApp].[dbo].[Templates] )AS _hour WHERE Rank=1 ) - 查询结果

二、Mysql
- 版本支持
mysql8.0+ - sql 语句
-- 查询第一排名数据 SELECT * FROM ( -- `Type` 列以时间升序排名 SELECT Id,Name,Type,CreateTime ROW_NUMBER() OVER (PARTITION BY Type ORDER BY CreateTime ASC) AS `Rank` FROM `WeChatApp`.Templates ) AS Tmp WHERE Tmp.`Rank`=1 - 联表查询
-- 联表查询排名第一数据 SELECT * FROM `WeChatApp`.Content AS Content INNER JOIN ( -- `Type` 列以时间升序排名 SELECT Id,Name,Type,CreateTime ROW_NUMBER() OVER (PARTITION BY Type ORDER BY CreateTime ASC) AS `Rank` FROM `WeChatApp`.Templates ) AS Tmp ON Content.TempId=Tmp.Id WHERE Tmp.`Rank`=1
如有帮助,欢迎转载,转载请注明原文链接:https://www.cnblogs.com/study10000/p/13035368.html

浙公网安备 33010602011771号