mysql数据库group by命令和having的使用

27 篇文章 0 订阅

大家好,我是天空之城,今天给大家带来mysql数据库group by和having的使用。
group by表示按一定规则对数据进行分组,比如公司想知道每个部门男女员工的人数,班主任想统计各科第一名的成绩。必须配合聚合函数进行使用,如count,sum,avg,max,min,对一列或多列进行分组。
建表链接https://blog.csdn.net/littlespider889/article/details/106560626

#group by语法
SELECT column_ name, aggregate function(column name)
FROM table name
GROUP BY column name

在SQL中增加HAVING子句原因是, WHERE关键字无法与聚合函数一起使用(where对分组前数据进行过滤)。HAVING 子句可以对分组后的各组数据进行筛选。
#having语法
SELECT column_ name, aggregate_ function(column_ name)
FROM table_ name
WHERE column name operator value
GROUP BY column name
HAVING aggregate function(column_ name) operator value

还是用employee表进行练习
select sex, count(*) from employee group by sex;
显示男员工8人,女员工5人
男 8
女 5


按照部门进行人员统计
select dept, count(*) from employee group by dept;
部门A 5
部门C 3
部门B 5

统计各个部门的工资总和
select dept, sum(salary) from employee group by dept;
统计各个部门的工资最高的
select dept, max(salary) from employee group by dept;
部门A  8500
部门C  10000
部门B   12000

统计各个部门的工资最低的
select dept, min(salary) from employee group by dept;
部门A  4200
部门C  4500
部门B   3500
select后面除了分组字段外只能说聚合函数

having用法
找出部门人数小于5个的那个部门
select dept, count(*) from employee group by dept having count(*)<5;
部门C  3

找出部门最高薪资过万的那个部门
select dept, max(salary) from employee group by dept having max(salary)>10000;
部门B   12000

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值