group by
group by 的使用
select job_id,avg(salary) from employees group by job_id;
查询各个department_id,job_id的平均工资
select job_id,department_id,avg(salary) from employees group by job_id,department_id;
group by 后先写 job_id 还是先写 department_id 都是一样的
结论1:select 中出现的非组函数的字段必须声明在group by中
反之,group by中声明的字段可以不出现在select中
结论2:group by声明在from后面、where后面、order by前面、limit前面
group by中使用with rollup
使用with rollup 关键字后,在所有查询出的分组记录之后增加一条记录,该记录用于计算所有数据的总和,也即将所有数据视为全体,然后使用当前聚合函数对整体进行计算
select avg(salary) from employees group by job_id with ROLLUP;
注意:使用rollup时,不能同时使用order by 子句进行结果的排序,他们是互相排斥的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本