4.MYSQL-DQL查询语言学习-常见函数的学习-分组函数

二、分组函数

#二、分组函数
/*
功能:用作统计使用,又称为聚合函数或统计函数或组函数
分类:
SUM 求和,AVG 平均值,MAX 最大值,MIN 最小值,COUNT 计算个数,

特点:
1.SUM,AVG一般用于处理数值型;
MAX,MIN,COUNT可以处理任何类型
2.以上分组函数均忽略NULL值
3.可以和DISTINCT 关键字搭配使用
4.COUNT 函数的单独介绍
一般使用COUN(*)用作统计行数
5.和分组函数一同查询的字段要求是GROUP BY后的字段
*/

#1.简单使用
SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT COUNT(salary) FROM employees;

SELECT SUM(salary) 和,ROUND(salary,2) 平均,COUNT(salary) 个数 FROM employees;

#2.参数支持哪些类型
SELECT SUM(last_name),AVG(last_name) FROM employees;
SELECT SUM(hiredate),AVG(hiredate) FROM employees;

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

SELECT COUNT(last_name) FROM employees;
SELECT COUNT(commission_pct) FROM employees;

#3.是否忽略NULL值
SELECT SUM(commission_pct),AVG(commission_pct) FROM employees;
SELECT MAX(commission_pct),MIN(commission_pct) FROM employees;

SELECT COUNT(commission_pct) FROM employees;

#4.和DISTINCT 关键字搭配
SELECT SUM(DISTINCT salary),SUM(salary) FROM employees;
SELECT COUNT(DISTINCT salary),COUNT(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.和分组函数一同查询的字段有限制
SELECT AVG(salary),employee_id FROM employees;

#测试题:
#1.查询公司员工工资的最大值,最小值,平均值,总和
SELECT
MAX( salary ) 最大值,
MIN( salary ) 最小值,
ROUND( AVG( salary ), 2 ) 平均值,
SUM( SALARY ) 总和
FROM
employees;

#2.查询员工列表中的最大入职时间和最小入职时间的相差天数(DIFFERENCE)
SELECT
DATEDIFF( MAX( hiredate ), MIN( hiredate ) ) AS DIFFERENCE
FROM
employees;

#3.查询部门编号为90的员工个数
SELECT
COUNT( employee_id )
FROM
employees
WHERE
department_id = 90;

发布了13 篇原创文章 · 获赞 2 · 访问量 4298

猜你喜欢

转载自blog.csdn.net/qq_41644888/article/details/104626034
今日推荐