mysql函数 分组_05_MySQL常见函数_分组函数

# 分组函数

/*

功能: 统计,又称为聚合函数,统计函数,组函数

传入一组值,统计后得到一个值

分类:

sum 求和,avg 平均值,max 最大值,min 最小值,count 计算个数

特点:

1. sum,avg处理数值型

max,min,count处理任何类型

2. 是否忽略null值

分组函数都忽略null值,不参与统计

3. 可以和distinct搭配,先去重再计算

4、count函数的详细介绍

count(x) x字段的非null行数

count(*) 表的总行数(一行中只要有1个字段不为null, 则计入)

count(常量) 表的总行数(相当于表中增加1列,值为给定的常量

统计效率:

存储引擎为myisam, count(*)效率最好,有1个内部计数器直接保存了count(*)

存储引擎为innodb, count(*)和count(1)类似,但比count('常量字段')效率高(要判断null)

5、和分组函数一同查询的字段有限制(返回的逻辑表,结构要规则)

要求是group by后的字段(逻辑表要规则)

*/

# 1、简单的使用

SELECT SUM(salary) FROM employees;

SELECT AVG(salary) FROM employees;

SELECT MAX(salary) FROM employees;

SELECT MIN(salary) FROM employees;

SELECT COUNT(salary) FROM employees;

SELECT SUM(salary) AS 和, TRUNCATE(AVG(salary),4) 平均, MAX(salary) 最大

FROM employees;

# 2、参数支持哪些类型

# sum,avg: 数值类型才有意义

# max,min: 数值类型,字符型(字典顺序), 日期型

# count: 数值,字符,日期型(非null的个数)

SELECT MAX(hiredate),MIN(hiredate) FROM employees;

SELECT COUNT(last_name), COUNT(commission_pct) FROM employees; # 107,35

# 3、是否忽略null值

# 忽略null值

SELECT SUM(commission_pct), AVG(commission_pct)FROM employees;

# 忽略null值

SELECT MAX(commission_pct), MIN(commission_pct) FROM employees;

# 4、和distinct搭配(去重统计)

SELECT SUM(DISTINCT salary), SUM(salary) FROM employees; # 先去重再求和

SELECT COUNT(DISTINCT salary), COUNT(salary) FROM employees; # 先去重再计数

SELECT MAX(DISTINCT salary), MIN(DISTINCT salary) FROM employees; # 先去重

# 5、count的详细介绍

SELECT COUNT(salary) FROM employees; # salary字段的非null行数

SELECT COUNT(*) FROM employees; # count(*),表的总行数(一行中只要有1个字段不为null, 则计入)

SELECT COUNT(1) FROM employees; # 等价于给表增加了1列1, 统计该列的行数(表的实际行数)

# 6、和分组函数一同查询的字段有限制

# 逻辑表的结构也要规则(不能1个字段x行,1个字段y行)

# 错误实例

SELECT AVG(salary), employee_id FROM employees; # avg只有1行,employee_id有107行,结果肯定有问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值