本专栏收录了数据库的知识点,而基础DQL系列文章将对每种查询都单独写一篇文章,提供给有需要的小伙伴参考,本专栏地址可以戳下面链接查看
🎈 数据库知识点总结(持续更新中):【数据库知识点】
🔑 数据库相关练习题(持续更新中):【数据库练习题】
🔥 一个提供给Java学习者的专栏:【拼图小游戏(Java)】
聚合函数&分组查询
一、前言
本文将讲述有关于聚合函数的知识点以及会使用到聚合函数的分组查询
二、聚合函数
1.概述
将一列数据作为一个整体,进行纵向计算
2.常见聚合函数
函数功能count统计数量max最大值min最小值avg平均值sum求和
3.语法
SELECT 聚合函数(字段列表) FROM 表名;
4.COUNT函数
我们给定一张表,并使用SQL语句查询表格中包含的城市数量
SELECTCOUNT(Country)from Student;
Student
NameCountryAge张三上海19李四上海21王某某NULL21老六北京20老七南京21赵某某北京23老某某NULL19
查询结果如下
5.MAX、MIN函数
我们给定一张表,运用max函数查询年龄的最大值
SELECTMAX(Age)from Student;
结果如下
6.AVG函数
我们给定一张表,运用max函数查询年龄的平均值
SELECTAVG(Age)from Student;
7.SUM函数
我们给定一张表,运用SUM函数求年龄值的和
SELECTSUM(Age)from Student;
三、分组查询
1.语法
SELECT 字段列表 FROM[WHERE 条件]GROUPBY 分组字段名 [HAVING 分组后过滤条件];
2.WHERE 和 HAVING 区别
- 时机不同:WHERE在分组前过滤,不满足条件不参与分组;HAVING在分组后过滤
- 判断条件不同:WHERE不能对聚合函数进行判断,但HAVING可以
3.实例
(1)根据性别分组,统计男学生和女学生的数量
- 根据性别分组:
GROUP BY Gender
- 统计数量:
COUNT(*)
- 统计男学生、女学生数量:
SELECT Gender,COUNT(*)
SELECT Gender,COUNT(*)from Student GROUPBY Gender;
(2)根据性别分组,统计男性员工和女生员工的平均年龄
- 根据性别分组:
GROUP BY Gender
- 统计平均年龄:
AVG(age)
- 统计男学生、女学生数量:
SELECT Gender,AVG(age)
SELECT Gender,AVG(Age)from Student GROUPBY Gender;
四、注意事项
1.执行顺序
WHERE > 聚合函数 > HAVING
2.分组后的查询
查询字段一般为聚合函数和分组函数字段,查询其它字段无任何意义
五、结语
下一篇文章将讲述排序查询有关知识点
版权归原作者 Alita101_ 所有, 如有侵权,请联系我们删除。