MySQL(13)——分组函数

1. 概念

分组函数用于统计使用,所以又称为聚合函数或统计函数,亦或组函数。

2. 分类

sum: 求和

avg:  平均值

max:  最大值

min:   最小值

count:计算个数(计算非空值个数)

3. 特点

  • sum、avg一般用于处理数值型,max、min、count可以处理任意类型;
  • sum、avg、max、min、count均忽略null;
  • 可以和distinct搭配实现去重;
#去重---SUM
SELECT SUM(DISTINCT salary),SUM(salary) FROM JDSC; 
#去重---COUNT
SELECT COUNT(DISTINCT salary) FROM JDSC; 

4. sum

#求工资(salary)之和 表名:JDSC 
SELECT SUM(salary) FROM JDSC;

5. avg

#求工资(salary)平均值 表名:JDSC 
SELECT AVG(salary) FROM JDSC;

6. max

#求工资(salary)最大值 表名:JDSC 
SELECT MAX(salary) FROM JDSC;

7. min

#求工资(salary)最小值 表名:JDSC 
SELECT MIN(salary) FROM JDSC;

8. count

#求工资(salary)个数 表名:JDSC 
SELECT COUNT(salary) FROM JDSC;

9. 组合使用

SELECT 
    SUM(salary) 和,
    AVG(salary) 平均,
    MAX(salary) 最高 
FROM 
    JDSC;

 10. count扩展

#统计行数
SELECT COUNT(*) FROM JDSC;
#统计行数
SELECT COUNT(1) FROM JDSC;

效率:

MYISAM存储引擎下,COUNT(*)的效率高;

INNODB存储引擎下,COUNT(*)和COUNT(1)效率差不多,比COUNT(字段)高一些,原因是COUNT(字段)有判断是否为null。 

11. 和分组函数一同查询的字段有限制

和分组函数一同查询的字段要求是group by后的字段。

12. 练习

#查询员工表中最大入职时间(hiredate)和最小入职时间的相差天数,别名为相差天数
SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) 相差天数 FROM JDSC;
#查询部门编号(ID)为90的员工个数
SELECT 
    COUNT(*) 个数
FROM
    JDSC
WHERE
    ID = 90;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值