MYSQL中GROUP BY的细节及SELECT语句顺序

一、GROUP BY语句的细节

我们知道,在sql中,GROUP BY语句主要用来给数据分组,以便能对每个组进行聚集计算,但是GROUP BY也有一些限制需要知道:

1. GROUP BY字句可以包含任意数目的列,使得能对分组进行嵌套,为数据分组提供更细致的控制。

2.如果嵌套了分组,数据将在最后规定的分组上进行汇总,也就是建立分组时,所有列都一起计算。

3.GROUP BY字句中列出的每个列都必须是检索列或者有效表达式,但不能是聚集函数,别名也不能使用

4.除了聚集语句外,SELECT语句中的每个列都必须在GROUP BY字句中给出。(没给出的那个字段实际上没什么用)

5.如果分组列中有NULL值,则NULL将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。

6.GROUP BY 子句必须在WHERE之后,ORDER BY 之前

二、SELECT语句顺序

字句

说明

是否必须使用

SELECT

要返回的列或表达式

FROM

从中检索数据的表

仅在从表中选择数据时使用

WHERE

行级过滤

GROUP BY

分组说明

仅在按组计算聚集时使用

HAVING

组级过滤

ORDER BY

输出排序顺序

LIMIT

要检索的行数

三、参考

1. 《MYSQL必知必会》

(完)

原文地址:https://www.cnblogs.com/harrymore/p/8883152.html