Express-学习之路 14,mysql-DQL 聚合函数和分组查询

147 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情

Express-学习之路 14,mysql-DQL 聚合函数和分组查询

引言

本系列会以我的一个理解,来介绍并开始学习 Express

中间会插入自己所联系到的 乱七八糟 的 知识点

聚合函数

聚合函数 很好理解,就是进行函数处理。

将表中某一个字段,这个字段的一列所有的数据进行处理。

主要有下面 5 个函数

注意:它们都不会对值为 null 的数据进行处理

  • count 统计数量

  • max 最大值

  • min 最小值

  • avg 平均值

  • sum 求和

主要使用方法如下:

  • 其中 xxx 代表的是 表名, a1 代表的是字段名

    select count(a1) from xxx
    

分组查询

分组查询,主要是通过 group byhaving 的方式来处理的。

  • a1~a2 代表字段

  • xxx 代表 表名

  • yyy 代表 分组前的 where 条件

  • zzz 代表 分组后的过滤条件

select a1 from xxx where yyy group by a2 having zzz
  • 过滤

    • 这里 where 条件是对 分组前 数据进行过滤

    • having 是对 分组后 的数据进行过滤

  • 是否可以使用聚合函数

    • where 条件中不可以使用聚合函数

    • having 中可以使用

给一段数据

image.png

对 性别 进行分组,统计男和女对应的数量

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

image.png

可以看到有个 count(*) 可能不是我们想要的,我们可以进行取别名的方式,选自己想要的名字,例如使用 bieming 来替代。

select sex, count(*) bieming from userinfo where age < 18 group by sex having count(age)>=2

image.png

总结

学习了 mysql 中的复杂查询语句,聚合函数分组查询