MySQL学习笔记(四)——分组函数,分组查询,连接查询

MySQL学习笔记(四)——分组函数,分组查询,连接查询

作者:就叫易易好了
日期:2020/11/18

一、分组函数

功能:用作统计使用,又称为聚合函数或统计函数

分类:

  • sum函数
  • avg函数
  • max函数
  • min函数
  • count函数

以下代码演示均基于myemployees数据库,可在MySQL学习笔记(一)中下载

#简单的使用案例

SELECT SUM(salary) FROM employees;
作用:求employees表中所有员工的薪水之和

SELECT avg(salary) FROM employees;
作用:求employees表中所有员工薪水的平均值

SELECT max(salary) FROM employees;
作用:求employees表中所有员工的薪水的最大值

SELECT min(salary) FROM employees;
作用:求employees表中所有员工的薪水的最小值

SELECT count(salary) FROM employees;
作用:求salary这个字段的非空值的个数

特点:

  • sum,avg一般用于处理数据类型
  • max,min,count可以处理任何类型
  • sum,avg,max,min,count都忽略null值
#与distinct函数搭配使用
SELECT SUM(DISTINCT salary),SUM(salary) FROM employees;
返回值后者要比前者大很多,因为distinct是去重函数,去掉了表格里面很多重复的值
  • 对于count函数的详细介绍

SELECT (*) FROM employees;

在统计的过程中,该行只要用一个值不为null,就能统计上

此语句经常用来统计所有行数的个数,一般用这个语句统计总行数

二、分组查询

如果我们要查询employees表格中各部门的平均工资该怎么办呢?这个时候就需要使用分组查询了。

  • group by 语句

语法:

select 分组函数

from 表

where 筛选条件

group by 分组的列表

查询列表必须特殊,要求是分组函数和group by后出现的字段。

#案例:查询每个工种的最高工资
SELECT MAX(salary),jio_id
FROM employees
GROUP BY job_id
#案例:查询每个位置上的部门个数
SELECT COUNT(*),location_id
FROM departments
GROUP BY
location_id;

1、添加筛选条件

#案例1:查询邮件中包含a的字符的,每个部门的平均工资
SELECT AVG(salary),department_id
FROM employees
WHERE 
email like '%a%'
GROUP BY 
department_id;
#案例2:查询有奖金的每个领导手下员工的最高工资
SELECT 
MAX(salary),m
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值