- 此问题在此处已有答案**:
SQL select only rows with max value on a column [duplicate](27个答案)
3天前关闭。
我有一个名为Work_Items的表,如下所示:
假设这个表中有很多名称(例如,E、F、G、H、I等)以及它们各自的日期和生产项目。这是一个庞大的表,所以我想编写一个优化的查询。
在这里,我想查询最新的A、B、C、D记录。
我使用了以下查询:
SELECT * FROM Work_Items WHERE Name IN ('A','B','C','D') ORDER BY Date DESC OFFSET 0 LIMIT 4
但是这个查询的问题是,因为我是按日期排序的,所以我得到的最新4条记录是:
我想得到这个结果:
请帮助我修改查询,谢谢。
2条答案
按热度按时间pcrecxhr1#
在MySQL 8+中,我们可以使用
ROW_NUMBER
:y1aodyip2#
你可以使用内部连接,如下所示,它的工作在任何版本的mysql: