标签:salary 函数 分组 SELECT MySQL null myemployees 入门
请先导入myemployees数据库 执行SQL脚本文件导入数据库
分组函数:
功能:用作统计使用,又称为聚合函数或统计函数或组函数
常见函数:sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数
特点:
1、sum、avg一般用于处理数值型
max、min、count可以处理任何类型
2、以上分组函数都忽略null值
3、可以和distinct搭配实现去重的运算
4、count函数,一般使用count(*)用作统计行数
5、和分组函数一同查询的字段要求是group by后的字段
1、简单使用
USE myemployees;
SELECT SUM(salary) '和',AVG(salary) '平均',MAX(salary) '最高',MIN(salary) '最低',COUNT(salary) '个数'
FROM employees;
2、是否忽略null
①、测试avg函数是否忽略null值
USE myemployees;
SELECT SUM(commission_pct) ,AVG(commission_pct),SUM(commission_pct)/35,SUM(commission_pct)/107
FROM employees;
有上面的数据可知(只有35个员工有奖金),总和 / 35 = AVG,说明avg函数忽略null值。
②、测试min、max函数是否忽略null值
USE myemployees;
SELECT MAX(commission_pct) ,MIN(commission_pct)
FROM employees;
如果max、min不忽略null值,则null必定是一个最值。但是有结果可知,null被忽略了。
3、与distinct去重进行搭配
USE myemployees;
SELECT SUM(DISTINCT salary),SUM(salary)
FROM employees;
注意:分组函数不能和字段一起查询。
USE myemployees;
#AVG(salary)结果只有一个值,而employee_id字段有很多个值
SELECT AVG(salary),employee_id
FROM employees;
测试:
1、查询部门编号为90的员工个数
USE myemployees;
#COUNT计算个数
SELECT COUNT(*)
FROM employees
WHERE department_id = 90;
2、查询员工表中的最大入职时间和最小入职时间的相差天数
两个date类型相减的结果是小时,需要转换为天数
USE myemployees;
SELECT MAX(hiredate) '最晚', MIN(hiredate) '最早', (MAX(hiredate)-MIN(hiredate))/1000/3600/24 '天数差'
FROM employees;
以上便是5个常见的分组函数,各位看官给个关注或者点个赞呗!谢谢。
标签:salary,函数,分组,SELECT,MySQL,null,myemployees,入门 来源: https://blog.csdn.net/qq_41855420/article/details/99750663
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。