CC00024.bigdatajava——|Java&MySQL单表/约束/事务.V02|——|MySQL.v02|DQL_聚合函数|

本文介绍了SQL中的聚合函数,如COUNT、SUM、MAX、MIN和AVG的使用方法,并通过实际例子展示了如何统计员工数量、计算薪水总和、求最高和最低薪水以及平均薪水。同时,讲解了如何根据条件查询特定部门的员工数量和平均薪资。
摘要由CSDN通过智能技术生成
一、聚合函数
### --- 聚合函数

——>    之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,
——>    而使用聚合函数查询是纵向查询,它是对某一列的值进行计算,
——>    然后返回一个单一的值(另外聚合函数会忽略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 = '市场部';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yanqi_vip

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

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

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

打赏作者

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

抵扣说明:

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

余额充值