数据库教程:MySQL必备基础之分组函数 聚合函数 分组查询详解

目录二、搭配distinct去重三、count()详细介绍一、简单使用sum:求和(一般用于处理数值型)avg:平均(一般用于处理数值型)max:最大(也可以用于处理字符串和日期)min:最小(也可以

目录
  • 二、搭配distinct去重
  • 三、count()详细介绍

一、简单使用

sum:求和(一般用于处理数值型)
avg:平均(一般用于处理数值型)
max:最大(也可以用于处理字符串和日期)
min:最小(也可以用于处理字符串和日期)
count:数量(统计非空值的数据个数)

以上分组函数都忽略空null值的数据

  select sum(salary) as 和,avg(salary) as 平均,max(salary) as 最大,min(salary) as 最小,count(salary) as 数量  from employees;  

MySQL必备基础之分组函数 聚合函数 分组查询详解

二、搭配distinct去重

(以上函数均可)

  select sum(distinct salary) as 和,avg(distinct salary) as 平均,count( distinct salary) as 去重数量,count(salary) as 不去重数量  from employees;  

MySQL必备基础之分组函数 聚合函数 分组查询详解

三、count()详细介绍

  #相当于统计行数方式一  select count(*)   from employees;  

  #相当于统计行数方式二,其中1可以用其他常量或字段替换  select count(1)   from employees;  

效率问题:
myisam存储引擎下,count(*)的效率高
innodb存储引擎下,count(*)count(1)的效率差不多,比count(字段)

因此一般用count(*)统计行数

四、分组查询

  #其中[]内为可选  select 分组函数,列表(要求出现在 group by 的后面)  from 表  [where 筛选条件]  group by 分组列表  [order by 子句]  

示例:

  #查询每个工种的最高工资  select max(salary) as 最高工资,job_id  from employees  group by job_id;  

MySQL必备基础之分组函数 聚合函数 分组查询详解

  #查询每个部门中,邮箱包含a的员工的平均工资(分组前的筛选)  select avg(salary) as 平均工资,department_id  from employees  where email like '%a%'  group by department_id;  

MySQL必备基础之分组函数 聚合函数 分组查询详解

  #查询部门员工数量大于2的部门的员工数量(分组后的筛选)  #使用having  select count(*) as 员工数量,department_id  from employees  group by department_id  having count(*)>2;  

MySQL必备基础之分组函数 聚合函数 分组查询详解

MySQL必备基础之分组函数 聚合函数 分组查询详解

  #按照多字段  select count(*) as 员工数量,job_id,department_id  from employees  group by job_id,department_id;  

MySQL必备基础之分组函数 聚合函数 分组查询详解

  #完整结构  select avg(salary) as 平均工资,department_id  from employees  where department_id is not null  group by department_id  having avg(salary)>9000  order by avg(salary) desc;  

MySQL必备基础之分组函数 聚合函数 分组查询详解

到此这篇关于mysql必备基础之分组函数 聚合函数 分组查询详解的文章就介绍到这了,更多相关mysql 分组函数 内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多数据库技术:MySQL必备基础之分组函数 聚合函数 分组查询详解,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/840904.html

(0)
上一篇 2021年10月15日
下一篇 2021年10月15日

精彩推荐