SQL基础之聚合与排序

聚合函数是用来求和,平均值,最大最小值一类的函数。

常用的有COUNT、SUM、MAX、MIN、AVG。

count()

参数为列名,也可以使用*,表示全部列。

默认*会统计所有行的数据,如果想过滤掉NULL行,要指定具体列名。

过滤空行:

mysql> select * from employees where 'to_date' is null;
Empty set (0.00 sec)

 注:

1.聚合函数在进行计算之前,会自动将NULL的行排除,但是count(*)是个例外。

2.适用范围,MAX/MIN适合所有类型的列,而SUM/AVG只适合数值类型的列。

3.想要计算值的类型时,可以在COUNT函数中使用DISTINCT。

对表进行分组

注意点:

1.聚合函数和GROUP BY子句只能在SELECT子句中使用

2.GROUP BY 子句中不能使用SELECT子句中列的别名

3.GROUP BY 子句中的聚合结果是无序的

4.WHERE 子句中不能使用聚合函数

5.子句的书写顺序,SELECT-->FROM-->WHERE-->GROUP BY

将表分组之后再进行聚合

SELECT name,count(*) FROM people GROUP BY name;

聚合键中包含NULL时,会以空行的形式表现出来。

GROUP BY和WHERE并用时的执行顺序:FROM-->WHERE-->GROUP BY-->SELECT

注意

1.SELECT子句中只能存在下面三种元素:

常数
聚合函数
聚合键,即GROUP BY子句中的列

2.使用GROUP BY子句时,SELECT子句中不能出现聚合键之外的列名。

为聚合结果指定结果

HAVING子句用来指定分组的条件,需要写在GROUP BY子句之后。

原文地址:https://www.cnblogs.com/leomei91/p/7640485.html