【发布时间】:2020-10-17 14:50:01
【问题描述】:
我正在使用 mysql8 服务器。有这样的表,并希望收到每个 good_id 的最后一行。
CREATE TABLE good_states (`ID` int, `good_id` int, `sales` int);
INSERT INTO good_states (`id`, `good_id`, `sales`)
VALUES
(1, 25, 33),
(2, 25, 34),
(3, 24, 14),
(4, 25, 64),
(5, 24, 53),
(6, 24, 457),
(7, 35, 96)
;
http://www.sqlfiddle.com/#!9/735bb60/1
这个查询
SELECT * FROM good_states WHERE `good_id` IN (25,24) GROUP BY good_id
从 good_states 将每个 good_id 的第一行返回给我,但我需要接收每个 good_id 的最后一行。
3 | 24 | 14
1 | 25 | 33
我想收到这样的东西
6 | 24 | 427
4 | 25 | 64
按 id DESC 订购 - 只是不要在这里工作。作为 GROUP BY 以 ASC 方式排序答案。没有 GROUP by 有什么方法可以做我想做的事吗?
【问题讨论】:
-
注意demo是5.6版本。您可以使用第 8 版进行调整。
标签: mysql sql select mysql-8.0