Mysql-group先分组后排序


1、先分组后排序、考虑并列第一

 

#错误写法
SELECT
    b.depName AS departId,
    a.`name` AS employee,
    max(salary) AS salary
FROM
    cs_employee a
LEFT JOIN cs_depart b ON a.departId = b.id
GROUP BY
    a.departId


#正确写法(先取出部门不为空的工资最大值,然后关联查询)
SELECT
    a.max AS salary,
    b.`name` AS employee,
    c.depName AS departId
FROM
    (SELECT MAX(salary) max FROM cs_employee t WHERE t.departId is NOT NULL GROUP BY t.departId ) a 
LEFT JOIN cs_employee b ON  a.max = b.salary
LEFT JOIN cs_depart c ON b.departId = c.id
ORDER BY b.departId

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM