[英]Mysql - Order in group by , select latest from group
看我有一張桌子
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在這里,我想要9,8,7代替它們,它們應該是最新的,我希望你得到我的意思,來自小組的最新ID。 現在一直在努力,任何想法?
編輯:我不能做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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.