从零开始学MySQL数据库--第五章 聚合与分组

目录

1,聚合函数

2,使用 GROUP BY 进行分组

3,过滤分组数据:HAVING 语句的使用


1,聚合函数

    聚合函数是用于处理一组数据并返回单个结果的 SQL 函数,在数据库中常用于数据统计和分析

  1. ​COUNT:用于计算指定列或行数量。

  2. SUM:用于计算指定列的数值之和。

  3. AVG:用于计算指定列的平均值。

  4. MAX:用于找到指定列的最大值。

  5. MIN:用于找到指定列的最小值。

select count (*) from 表名;
select sum(成绩) FROM 表名;
select avg(成绩) FROM 表名;
select max(成绩) FROM 表名;
select min(成绩) FROM 表名;

示例:

1,查询 students 表中成绩最高者,并显示学号、姓名和成绩。

2,查询 students 表中成绩高于 80 分的学生人数。

select 学号, 姓名, 成绩
from students
where 成绩 = (select max(成绩) from students);
​
select count(*) as 人数
from students
where 成绩 > 80;

执行结果:

2,使用 GROUP BY 进行分组

    使用 group by 子句是在 SQL 查询中对数据进行分组和聚合操作的重要工具。允许用户按照一个或多个列的值对数据进行分组,然后对每个分组应用聚合函数,以获取汇总信息。

步骤:

  • 选择列:首先,选择需要进行分组和聚合的列,通常是用于区分分组的列。

  • 使用 group by 子句:在 select 语句中使用 group by 子句,将要分组的列放在 group by 后面。

  • 应用聚合函数:在查询中使用聚合函数对每个分组进行计算。

示例:

    按性别进行分组,并计算每个性别的平均成绩和人数。

select 性别, avg(成绩) as 平均成绩, count(*) as 人数
from students
group by 性别;

执行结果:

注意事项:

  • group by 子句中列出的列应该与 select 语句中选择的列一致,或者是聚合函数的参数。

  • group by 中列出的列决定了分组的方式。相同值的行会被分到同一组。

  • 分组时,一般会对每个组应用聚合函数(例如 sum、avg、count)以得到汇总数据。

  • 使用 having 子句可以在分组后筛选出满足特定条件的分组。

3,过滤分组数据:HAVING 语句的使用

    having 子句用于在使用 group by 进行分组后对分组数据进行筛选,类似于 where 子句用于对整个数据集进行筛选。允许用户筛选出满足特定条件的分组,从而对聚合结果进行进一步的限制。

步骤:

  • 使用 group by 子句: 在查询中使用 group by 子句,按照一个或多个列的值对数据进行分组。

  • 使用 having 子句: 在 group by 子句之后使用 having 子句,指定用于筛选分组数据的条件。

示例:

    筛选出平均成绩高于 80 的性别,并显示性别与平均成绩。

select 性别, avg(成绩) as 平均成绩
from students
group by 性别
having 平均成绩 > 80;

执行结果:

注意事项:

  • having 子句只能用于已经使用 group by 子句的查询中。

  • having 子句中可使用聚合函数,也可使用列名,以及比较运算符和逻辑运算符。

  • having 子句筛选的是分组后的结果,而不是原始数据集。

        通过使用 having 子句,用户可在分组数据中进行条件筛选,仅保留满足特定条件的分组。这样可使用户的分析更加有针对性,得到符合要求的聚合结果。


        最后,欢迎大家关注我的微信公众号『LemonTechnology』,获取更多学习资料。也可在公众号查看C/C++、JAVA、Python编程,嵌入式编程,实时操作系统,MySQL数据库,科技论文写作等更多学习类教程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值