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)
请参阅。结果: 看看:如果你想扩大这个问题的吸引力这个社区(无论如何,一个),然后考虑删除“想要”这个词的问题。