Mysql进阶四:常见函数-分组函数

Mysql进阶四:常见函数-分组函数

分组函数:常用于统计


1.内容:sum max min count avg

2.特点:
  1. sum avg 用于处理数值型
    max min 用于处理任何数据类型
    count 适用处理任何数据类型,用于计算非空数据的类型

2.分组函数是否忽略null值 以上分组函数全部都都忽略null值


3.可以和distinct去重搭配使用


4.count的使用:广泛用于计算非空行数(当且仅当一行所有数据都为null时,才不会计入行数)


5.和分组函数搭配使用字段要求是group by后的字段


1. 简单使用
USE myemployees;

SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT COUNT(salary) FROM employees;
 SELECT SUM(salary) 和,AVG(salary) 平均  
 FROM employees;

2.参数支持的类型

SUM() AVG() 支持数值型数据

  • 字符串使用无意义
    sqlyog虽然输出为0,但是并不代表正确,事实上数据库并不建议我们这样使用
验证:
SELECT SUM(last_name),AVG(last_name) 
FROM employees;
  • 日期使用无意义
验证:
SELECT SUM(hiredate),AVG(hiredate) 
FROM employees;
  • MAX() MIN()支持字符型、日期
SELECT MAX(last_name),MIN(last_name) 
FROM employees;

SELECT MAX(hiredate),MAX(hiredate) 
FROM employees;

3.忽略NULL
SELECT commission_pct 
FROM employees;
输出为107行数据
SELECT SUM(commission_pct),AVG(commission_pct) 
FROM employees;
输出为  7.80  0.222857

4.和DISTINCT搭配使用
SELECT SUM(DISTINCT salary), SUM(salary) 
FROM employees;

SELECT COUNT(salary),COUNT(DISTINCT salary) 
FROM employees;

5.count的使用
SELECT COUNT(salary) 
FROM employees;

用于计算行数

SELECT COUNT(*) 
FROM employees;


SELECT COUNT(1) 
FROM employees;

效率分析:

  • MYISAM 存储引擎中,COUNT(*) 效率最高
  • INNODB 存储引擎下,COUNT(*) 和COUNT(1)效率差不多,比COUNT(字段) 要高一点

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

下面这种写法有误(不规范结果),因为AVG结果是一个,而employee_id则是107个

SELECT AVG(salary) ,employee_id 
FROM employees;

测试题:

1.查询公司员工工资最大值、最小值、平均值、总和
2.查询员工表中的最大入职时间和最小入职时间相差的总天数(起别名为:天差)
3.查询部门编号为90的员工个数


答案:
SELECT MAX(salary),MIN(salary),AVG(salary),SUM(salary) 
FROM employees;
SELECT DATEDIFF (MAX(hiredate),MIN(hiredate)) 天差
FROM employees;

SELECT COUNT(*)
FROM employees;
WHERE employee_id = 90

第三小题:注意格式,是where在from后面,我第一遍写的时候就弄错了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北溟南风起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值