目录
1,聚合函数
聚合函数是用于处理一组数据并返回单个结果的 SQL 函数,在数据库中常用于数据统计和分析。
COUNT:用于计算指定列或行数量。
SUM:用于计算指定列的数值之和。
AVG:用于计算指定列的平均值。
MAX:用于找到指定列的最大值。
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数据库,科技论文写作等更多学习类教程。