第六章MYSQL 聚合函数和分组函数

Posted C小杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章MYSQL 聚合函数和分组函数相关的知识,希望对你有一定的参考价值。

(一)sum、max 和 min 聚合函数

  1. 聚合函数概念
    聚合函数用于对一组值进行计算并返回一个汇总值,使用聚合函数可以统计记录行数、计算某个字段值的总和以及这些值的最大值、最小值和平均值等。

  2. 聚合函数在这里插入图片描述

  3. 聚合函数使用
    (1)sum函数使用

select sum(miles) 线路总里程数 from line;

在这里插入图片描述
(2)max/min 函数使用

select max(miles) 最长线路里程 , min(miles) 最短线路里程 from line;

在这里插入图片描述

--查询年龄最大的公交司机的出生年月。
select min(birthday) 最年长司机生日 ,
ceil(datediff(curdate(),min(birthday))/365) 该司机年龄 from driver;

在这里插入图片描述

(二)avg 和 count 函数

(1) avg函数的使用

select avg(miles) 平均里程数 from line;

在这里插入图片描述
(2)count 函数函数的使用

select count(*) 线路数 from line;--使用“*”可获取整张表的记录行数。
select count(lineNo) 线路数 from line;

在这里插入图片描述

(三)分组查询 group by 子句

  1. group by 子句概念
    使用 group by 子句可以将数据划分到不同的组中,实现对记录的分组查询。
  2. group by 子句语法
group by 字段列表 [having 条件表达式 ]
  1. group by 字句的使用
select number 运营车辆数, count(lineNo) 公交线路数 
from line 
group by number 
order by number

在这里插入图片描述

(四)多字段分组和 having 子句

  1. 多字段分组
    (1)概念:group by 子句的分组字段是一个字段列表,即 mysql 支持按多个字段进行分组。
    (2)示例
select company 公司 , number 营运车辆数 , truncate(avg(miles),1) 平均营运里程 
from line 
group by company, number

在这里插入图片描述

  1. having子句
    (1)概念:having 子句的作用是筛选满足条件的组,即在分组之后过滤数据。having 子句的位置放在 group by 子句之后,常包含聚合函数。
    (2)示例
select model 型号 , type 类型 , count(*) 车辆数 from vehicle
group by model, type having 车辆数 >30 order by 车辆数 desc

在这里插入图片描述

以上是关于第六章MYSQL 聚合函数和分组函数的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据操作与查询(第六章 下)

第六章 SQL聚合函数 JSON_ARRAYAGG

MySQL函数MySQL 5.5从零开始学第六章

第六章 函数和调试

MYSQL 聚合函数和分组函数

十MySQL 聚合函数分组查询及过滤分组