MySql:GroupBy中的order by无效

MySql:GroupBy中的order by无效,mysql,Mysql,我有一张这样的桌子: CREATE TABLE `test` ( `id` int NOT NULL AUTO_INCREMENT , `sale_date` date NOT NULL , `store_id` varchar(64) NOT NULL , `money` decimal(10,2) NOT NULL , `type` tinyint(4) NOT NULL , PRIMARY KEY (`id`) ); select * from( select * from t

我有一张这样的桌子:

CREATE TABLE `test` (
`id`  int NOT NULL AUTO_INCREMENT ,
`sale_date`  date NOT NULL ,
`store_id`  varchar(64) NOT NULL ,
`money`  decimal(10,2) NOT NULL ,
`type`  tinyint(4) NOT NULL ,
PRIMARY KEY (`id`)
);
select * from(
select * from test order by type desc) r group by sale_date, store_id;
2020-03-12 111 800 2
2020-03-12 222 900 2
我插入以下数据:

2020-03-12 111 500 1
2020-03-12 111 800 2
2020-03-12 222 900 2
我想按销售日期和存储id分组,按类型desc分组,我的sql如下:

CREATE TABLE `test` (
`id`  int NOT NULL AUTO_INCREMENT ,
`sale_date`  date NOT NULL ,
`store_id`  varchar(64) NOT NULL ,
`money`  decimal(10,2) NOT NULL ,
`type`  tinyint(4) NOT NULL ,
PRIMARY KEY (`id`)
);
select * from(
select * from test order by type desc) r group by sale_date, store_id;
2020-03-12 111 800 2
2020-03-12 222 900 2
但结果是:

2020-03-12 111 500 1
2020-03-12 222 900 2
结果应该是这样的:

CREATE TABLE `test` (
`id`  int NOT NULL AUTO_INCREMENT ,
`sale_date`  date NOT NULL ,
`store_id`  varchar(64) NOT NULL ,
`money`  decimal(10,2) NOT NULL ,
`type`  tinyint(4) NOT NULL ,
PRIMARY KEY (`id`)
);
select * from(
select * from test order by type desc) r group by sale_date, store_id;
2020-03-12 111 800 2
2020-03-12 222 900 2

使用相关子查询:

select t.* 
from test t
where t.type = (select max(type) from test where sale_date = t.sale_date and store_id = t.store_id)
请参阅。
结果:

看看:如果你想扩大这个问题的吸引力这个社区(无论如何,一个),然后考虑删除“想要”这个词的问题。