MySQL——DQL语言基础(5)

常见函数

二、分组函数

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

 分类:

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

特点:

1、sum、avg一般用于处理数值型

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

2、以上分组函数都忽略null值

3、可以和distinct搭配使用

4、count函数的单独介绍

    一般使用count(*)用作统计行数

5、和分组函数一同查询的字段要求是group by 后的字段,其他的都不行


1、简单的使用

SELECT SUM(salary) FROM employees;

SELECT AVG(salary) FROM employees;

SELECT MIN(salary) FROM employees;

SELECT MAX(salary) FROM employees;

SELECT COUNT(salary) FROM employees;

组合简单使用

SELECT SUM(salary) 和,AVG(salary) 平均,MIN(salary) 最低,MAX(salary) 最高, COUNT(salary) 个数

FROM employees;


SELECT SUM(salary) 和,ROUND(AVG(salary),2) 平均,MIN(salary) 最低,MAX(salary) 最高, COUNT(salary) 个数

FROM employees;

2、参数支持那些类型

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


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


对于MySQL而言 不报错并不代表一定是对的 例如上面所查询的求和函数以及平均函数,虽然一样可以输出查询数值 但是所要查询的并没有什么实际的意义,所以可以说sum以及avg支持的应该是数值型的。

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


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


SELECT COUNT(commission_pct) FROM employees;


SELECT COUNT(last_name) FROM employees;


而相对于 max、min以及count来说就不存在类型的限制了。

3、忽略null

SELECT commission_pct FROM employees;


SELECT SUM(commission_pct),AVG(commission_pct),SUM(commission_pct/35),SUM(commission_pct)/107 FROM employees;


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

SELECT COUNT(commission_pct) FROM employees;


4、和distinct搭配

SELECT SUM(DISTINCT salary),SUM(salary)FROM employees;


SELECT COUNT(DISTINCT salary)FROM employees;


5、count函数的详细介绍

SELECT COUNT(salary)FROM employees;


SELECT COUNT(*)FROM employees;


一般来说*比直接用表名用的多 都是查询这个表里的所有列数

SELECT COUNT(1)FROM employees;


像这样写其实效果也是一样的,这样是直接在列里写入一个1 ,然后统计1的个数,也可以达到相同的效果

效率:

MYISAM存储引擎下,count(*)的效率高

INNODB存储引擎下,count(*)和count(1)的效率差不多,比count(字段)要高一些

因为当你的括号内的条件为字段时,需要判断这个字段的值是否为空,所以会相对其他两个慢一些

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

SELECT AVG(salary),employee_id FROM employees;


类似于这个查询,如果单从表格里面来看的话,可能会让人以为employee_id为100的工资为那个数值,但是前面的是由avg函数计算出来的平均值,实际上employee_id为100的salary也不为前面的数值,所以这样的查询并没有什么实际的意义,需要注意一下。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容