分享

MySql学习笔记08——分组函数(流程控制函数)

 Fengsq501u81r4 2021-11-23

分组函数

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

分类:

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

特点:

1 sum、avg用于处理数值型

max、min、count可以处理任何类型

2 以上分组函数都忽略null值(null值不参与计算)

3 可以和diatinct搭配实现去重的运算


name

sex

age

score_chinese

score_math

score_english

张三

16

85

56

90

李四

15

96

75

63

王二

17

99

79

75

赵五

16

85

90

88

表名:student

SUM()函数

SUM(DISTINCT expression)

用于计算一组值或表达式的总和

SELECT SUM(score_chinese) FROM student; #查询全部语文成绩之和


AVG()函数

AVG(DISTINCT expression)

用于计算一组值或表达式的平均值,返回数值列的平均值。

SELECT AVG(score_chinese) FROM student;#查询全部语文成绩的平均分


MIN()函数

MIN(DISTINCT expression)

用于计算一组值或表达式的最小值,返回数值列的最小值。

SELECT MIN(score_chinese) FROM student;#查询全部语文成绩的最低分


MAX()函数

MAX(DISTINCT expression)

用于计算一组值或表达式的最小值,返回数值列的最大值。

SELECT MAX (score_chinese) FROM student;#查询全部语文成绩的最高分


COUNT()函数

COUNT(DISTINCT expression)

用来统计表中记录的一个函数,返回匹配条件的行数

SELECT COUNT (score_chinese) FROM student;#查询全部语文成绩的个数

count()用法:

(1)count(*)---包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,不会忽略列值为NULL的记录。

(2)count(1)---忽略所有列,1表示一个固定值,也可以用count(2)、count(3)代替,在统计结果的时候,不会忽略列值为NULL的记录。

(3)count(列名)---只包括列名指定列,返回指定列的记录数,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。

(4)count(distinct 列名)---只包括列名指定列,返回指定列的不同值得记录数,在统计结果的时候,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。

3.count(*)&count(1)&count(列名)执行效率比较:

(1)如果列为主键,count(列名)效率优于count(1)

(2)如果列不为主键,count(1)效率优于count(列名)

(3)如果表中存在主键,count(主键列名)效率最优

(4)如果表中只有一列,则count(*)效率最优

(5)如果表有多列,且不存在主键,则count(1)效率优于count(*)

4.因为count(*)和count(1)统计过程中不会忽略列值为NULL的记录,所以可以通过以下两种方式来统计列值为NULL的记录数:

(1)select count(*) from table where is_active is null;
(2)select count(1) from table where is_active is null;


5.特例:

(1)select count('') from table;-返回表的记录数
(2)select count(0) from table;-返回表的记录数
(3)select count(null) from table;-返回0

转自
:https://www.cnblogs.com/-flq/p/10302965.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多