文章目录
前言
之前有遇到需要求分组后排序的问题,记录记录
问题
求公司各部门内工资最高的人
一、使用group by
实例代码:
select a.dept_no,a.name,a.salary
from (
select dept_no,name,salary
from employee
order by salary desc
limit 1000) a
group by a.dept_no
必须要使用limit,因为mysql 5.6之后版本对排序的sql解析做了优化,子查询中的排序是会被忽略的,所以上面的order by salary desc会失效,需要用limit来避免这种优化。
二、使用窗口函数
示例代码:
select a.dept_no,a.name,a.salary
from(
select
de