【MySQL】分组GROUP BY

1.GROUP BY分组使用

例:求员工表中各部门的平均工资
image

使用GROUP BY子句将数据按部门分

SELECT
department_id,AVG(salary)
FROM employees
GROUP BY department_id;
SELECT
d.department_name,AVG(e.salary)
FROM departments d,employees e
WHERE d.department_id = e.department_id
GROUP BY e.department_id; -- 可以不出现在select列表中

2.使用多个列分组

按照员工表中的department_id 和 job_id进行分组
image

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

image

3.GROUP BY中使用WITH ROLLUP

with rollup关键字将在查询出的分组记录之后增加一条记录数量

SELECT department_id,AVG(salary)
FROM employees
WHERE department_id>80
GROUP BY department_id WITH ROLLUP;

不使用和使用with rollup的对比
image

注意:当使用rollup时,不能同时使用order by子句进行结果排序,即rollup和order by是互相排斥的。

posted @   植树chen  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示