Advertisement

MySQL按分组排序

阅读量:

文章目录

  • 引言
      • 研究问题
    • 一、采用group by方法

    • 二、应用窗口函数

    • 三、结合窗口函数与group by

    • 结论


前言

此前曾遇到需要对分组后的数据进行排序的情况,现将相关经验进行整理记录。

问题

确定各职能部门中薪酬水平最高的员工

一、使用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
    
    
      
      
      
      
      
      
      
    

由于MySQL 5.6及以上版本对排序语句的解析机制进行了优化,子查询内部的排序操作将被系统自动忽略,因此原先用于排序的order by salary desc语句将无法正常发挥作用,为确保排序效果得以实现,必须借助limit语句进行限制。

二、使用窗口函数

复制代码
    select a.dept_no,a.n

全部评论 (0)

还没有任何评论哟~