gpt4 book ai didi

Mysql - 按组排序,从组中选择最新的

转载 作者:行者123 更新时间:2023-11-30 22:17:41 25 4
gpt4 key购买 nike

看我有一张 table

id  col1 col2
1 a x
2 b y
3 c z
4 a x
5 b y
6 c z
7 a x
8 b y
9 c z
10 a p
11 b q
12 c r

要获得它,您需要执行以下查询:

create database test_db_one;
use test_db_one;
create table test_table_one (
id INT NOT NULL AUTO_INCREMENT,
col1 varchar(3),
col2 varchar(4),
PRIMARY KEY (id)
);
INSERT INTO test_table_one(col1,col2) VALUES ('a','x'),('b','y'),('c','z'),('a','x'),('b','y'),('c','z'),('a','x'),('b','y'),('c','z'),('a','p'),('b','q'),('c','r');

我想要下面的结果,

id col1 col2
7 a x
8 b y
9 c z
10 a p
11 b q
12 c r

我按 col1,col2 分组得到上面的结果

select * from test_table_one group by col1,col2;

但是我得到的结果是错误的

+----+------+------+
| id | col1 | col2 |
+----+------+------+
| 10 | a | p |
| 1 | a | x |
| 11 | b | q |
| 2 | b | y |
| 12 | c | r |
| 3 | c | z |
+----+------+------+

我这里不需要 id 3,2,1,我想要 id 9,8,7 而不是它们,它们应该是最新的,我希望你明白我的意思,来自组的最新 id。现在一直在努力解决这个问题,有什么想法吗?

编辑:我不能执行 ORDER BY(order by 无论如何都不会给出所需的结果)。

最佳答案

好吧,这可以用 MAX() 简单地解决:

SELECT MAX(t.id) as max_id,t.col1,t.col2
FROM test_table_one
GROUP BY t.col1,t.col2
ORDER BY max_id

关于Mysql - 按组排序,从组中选择最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37698821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com