drop table if exists goods;
create table goods(
id int unsigned primary key auto_increment,
brand char(16),
goodsName char(16),
channel char(8),
price decimal(10,2),
inventory smallint unsigned
);
insert into goods values(default,'huawei','mate','3G',2300,30);
insert into goods values(default,'apple','6plus','4G',4500,43);
insert into goods values(default,'apple','6splus','4G',5100,20);
insert into goods values(default,'samsung','galaxy6','4G',3800,28);
insert into goods values(default,'huawei','mate10','3G',3200,15);
insert into goods values(default,'apple','5c','3G',1800,38);
insert into goods values(default,'huawei','mate8','4G',3500,51);
insert into goods values(default,'huawei','p8Max','4G',2700,27);
insert into goods values(default,'apple','5s','3G',2800,38);
insert into goods values(default,'samsung','galaxy5','3G',3400,33);
我百度到一个答案,但是我看不懂他的子查询
select a.* from goods a where 2>(select count(*) from goods where brand=a.brand and price>a.price)order by a.brand,a.price;