持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情
Express-学习之路 14,mysql-DQL 聚合函数和分组查询
引言
本系列会以我的一个理解,来介绍并开始学习 Express。
中间会插入自己所联系到的 乱七八糟 的 知识点。
聚合函数
聚合函数 很好理解,就是进行函数处理。
将表中某一个字段,这个字段的一列所有的数据进行处理。
主要有下面 5 个函数
注意:它们都不会对值为 null 的数据进行处理
-
count 统计数量
-
max 最大值
-
min 最小值
-
avg 平均值
-
sum 求和
主要使用方法如下:
-
其中 xxx 代表的是 表名, a1 代表的是字段名
select count(a1) from xxx
分组查询
分组查询,主要是通过 group by 和 having 的方式来处理的。
-
a1~a2 代表字段
-
xxx 代表 表名
-
yyy 代表 分组前的 where 条件
-
zzz 代表 分组后的过滤条件
select a1 from xxx where yyy group by a2 having zzz
-
过滤
-
这里 where 条件是对 分组前 数据进行过滤
-
having 是对 分组后 的数据进行过滤
-
-
是否可以使用聚合函数
-
where 条件中不可以使用聚合函数
-
having 中可以使用
-
给一段数据
对 性别 进行分组,统计男和女对应的数量
select sex, count(*) from xxx group by sex
查询年龄小于18的,再对 性别 进行分组,统计男或女中数量,并且取数量大于等于2的。
select sex, count(*) from userinfo where age < 18 group by sex having count(age)>=2
可以看到有个 count(*) 可能不是我们想要的,我们可以进行取别名的方式,选自己想要的名字,例如使用 bieming 来替代。
select sex, count(*) bieming from userinfo where age < 18 group by sex having count(age)>=2
总结
学习了 mysql 中的复杂查询语句,聚合函数 和 分组查询。