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必知必会》

(完)

posted @ 2018-04-19 15:19  大师兄啊哈  阅读(4050)  评论(0)    收藏  举报