mysql 按表达式或函数分组、多个字段分组、排序

按表达式或函数分组:

#案例:按员工的姓名的长度分组,查询每一组的员工个数,筛选员工个数大于五

SELECT
    COUNT(*),LENGTH(last_name)
FROM
    employees
GROUP BY
    LENGTH(last_name)
HAVING
    COUNT(*)>5;

按多个字段分组:
#案例:查询每个部门每个工种的员工的平均工资

SELECT 
    AVG(salary),department_id,job_id
FROM
    employees
GROUP BY
    department_id,job_id;

排序
#案例:查询每个部门每个工种的部门编号不为null的员工的平均工资>10000,并且按平均工资的高低显示

SELECT
    AVG(salary),department_id,job_id
FROM
    employees
WHERE
    department_id IS NOT NULL
GROUP BY
    department_id,job_id
HAVING
    AVG(salary)>10000
ORDER BY
    AVG(salary) DESC;