|NO.Z.00024|——————————|BigDataEnd|——|Java&MySQL单表/约束/事务.V02|——|MySQL.v02|DQL_聚合函数|
一、聚合函数
### --- 聚合函数
——>    之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,
——>    而使用聚合函数查询是纵向查询,它是对某一列的值进行计算,
——>    然后返回一个单一的值(另外聚合函数会忽略null空值。);### --- 语法结构
SELECT 聚合函数(字段名) FROM 表名;
我们来学习5个聚合函数| 聚合函数 | 作用 | 
| count(字段) | 统计指定列不为NULL的记录行数 | 
| sum(字段) | 计算指定列的数值和 | 
| max(字段) | 计算指定列的最大值 | 
| min(字段) | 计算指定列的最小值 | 
| avg(字段) | 计算指定列的平均值 | 
二、需求1 
### --- 需求1 
~~~     查询员工的总数
~~~     查看员工总薪水、最高薪水、最小薪水、薪水的平均值
~~~     查询薪水大于4000员工的个数
~~~     查询部门为'教学部'的所有员工的个数
~~~     查询部门为'市场部'所有员工的平均薪水### --- SQL实现
~~~     # 查询员工的总数
-- 统计表中的记录条数 使用 count()
SELECT COUNT(eid) FROM emp; -- 使用某一个字段
SELECT COUNT(*) FROM emp; -- 使用 *
SELECT COUNT(1) FROM emp; -- 使用 1,与 * 效果一样
-- 下面这条SQL 得到的总条数不准确,因为count函数忽略了空值
-- 所以使用时注意不要使用带有null的列进行统计
SELECT COUNT(dept_name) FROM emp;~~~     # 查看员工总薪水、最高薪水、最小薪水、薪水的平均值
-- sum函数求和, max函数求最大, min函数求最小, avg函数求平均值
SELECT
SUM(salary) AS '总薪水',
MAX(salary) AS '最高薪水',
MIN(salary) AS '最低薪水',
AVG(salary) AS '平均薪水'
FROM emp;~~~     # 查询薪水大于4000员工的个数
SELECT COUNT(*) FROM emp WHERE salary > 4000;~~~     # 查询部门为'教学部'的所有员工的个数
SELECT COUNT(*) FROM emp WHERE dept_name = '教学部';~~~     # 查询部门为'市场部'所有员工的平均薪水
SELECT
AVG(salary) AS '市场部平均薪资'
FROM emp
WHERE dept_name = '市场部';三、sql语句
### --- sql语句
/*
    聚合函数
        作用:将一列数据作为一个整体,进行纵向的计算的
    
    常用的聚合函数
        count(字段) 统计记录数
        sum(字段) 求和操作
        max(字段) 求最大值
        min(字段) 求最小值
        avg(字段) 求平均值
    
    语法格式
        select 聚合函数(字段名) from 表名 [where 条件]
*/~~~     # 查询员工的总数
SELECT COUNT(*) FROM emp; 
SELECT COUNT(1) FROM emp;
SELECT COUNT(eid) FROM emp;
-- count函数 在统计的时候回忽略空值
-- 注意 不要使用带空值的列 进行 count
SELECT COUNT(dept_name) FROM emp;~~~     # 查看员工总薪水、最高薪水、最小薪水、薪水的平均值
SELECT 
    SUM(salary) AS '总薪水',
    MAX(salary) '最高薪水',
    MIN(salary) '最小薪水',
    AVG(salary) '平均薪水'
FROM emp~~~     # 查询薪水大于4000员工的个数
SELECT COUNT(*) FROM emp WHERE salary > 4000;
~~~     # 查询部门为'教学部'的所有员工的个数
SELECT COUNT(*) FROM emp WHERE dept_name = '教学部';
~~~     # 查询部门为'市场部'所有员工的平均薪水
SELECT AVG(salary) FROM emp WHERE dept_name = '市场部';Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号