```sql
--方法一,仅适用于低于5.7版本的MySql--
select * from (select * from shop order by price desc) a GROUP BY a.shop_name;
--方法二--
select * from (select * from shop order by price desc limit 999999) a GROUP BY a.shop_name;
--方法三--
select * from shop a where N > (select count(*) from shop b where b.shop_name = a.shop_name
and a.price < b.price) order by a.shop_name,a.price desc;
```
方法二中使用 limit,需要 limit 的范围足够大能包括所有数据,并且每种分类只会显示一条数据,但是数据较多时运行效率要比方法三快上很多,方法三能够控制每种分类显示多少条数据,把 N 换成需要显示对应的数字即可。
原文 https://blog.csdn.net/lglaljj123/article/details/79864188
- Linux常用命令
- find命令常用用法
- grep命令常用用法
- Sublime Text常用插件
- Laravel artisan 命令工具
- Centos使用Bind搭建DNS服务器
- Docker
- Docker安装
- 镜像使用
- 容器使用
- 使用Docker Hub
- Linux下编译安装PHP7.2.14
- Git常用操作
- Laravel-env使用注意事项
- Linux系统安装docker后,firewall规则无效不起作用
- CentOS7 firewall 防火墙
- Mysql
- mysql查看binlog日志
- mysql使用sql备份文件恢复数据库
- mysqldump备份数据库
- mysql用户操作
- mysql基本命令
- Explain详解
- 先排序后分组
- 查询逗号分隔的id,翻译出相对应name,同样用逗号分隔
- 解决VirtualBox安装增强工具失败问题
- curl常用用法
- strtotime() 的各种用法
- 使用kebeadm搭建k8s
- win10激活