找到正确的 SQL 查询

我对 SQL 有一些问题(我真的很擅长),也许有人可以帮我找到正确的命令。

表名是enddate 具有以下属性

ID int
old_end_date date
name varchar

我试图通过名称获取表中的最后一个旧日期

我试过这个:

SELECT old_end_date from enddate WHERE id=(SELECT max(id) FROM enddate)

但它没有按名称过滤..

先谢谢你:)

iCMS 回答:找到正确的 SQL 查询

这是一种方法,也是最简单的方法。这样你就不需要窗口函数了:

select * 
from enddate
where name = 'hello'
order by old_end_date desc
limit 1;
,

在 mysql 8 中

你可以做 ROW_NUMBER

SELECT * from ( 
   SELECT *,ROW_NUMBER() OVER (PARTITION BY name ORDER BY old_end_date desc) rn 
   from enddate
) t
WHERE rn = 1 AND name = "hello"

如果你只想要一个名字

SELECT * 
FROM enddate
WHERE name = "hello"
ORDER BY old_end_date DESC
LIMIT 1;
本文链接:https://www.f2er.com/140281.html

大家都在问