[My SQL] 分组数据

分组允许把数据分为多个逻辑组,以便对每个组进行聚集计算;

分组是在SELECT语句的GROUP BY子句中建立的,GROUP BY在使用时有以下几个约定:

  • 如果在SELECT中使用表达式,则必须在GROUP BY子句中指定相同的表达式,不能使用别名;
  • 除了聚集计算子句以外,SELECT语句中每个列都必须在GROUP BY子句中给出;
我们以products表为例,表内容如下:

[My SQL] 分组数据

示例1:

[My SQL] 分组数据

错误的示例:

[My SQL] 分组数据

如果想要过滤分组,需要使用HAVING子句,它和WHERE唯一的区别是,WHERE过滤的是行,而HAVING过滤子组;

[My SQL] 分组数据

HAVING 和 WHERE结合使用的栗子:第一个命令没有使用WHERE,第二个命令使用了WHERE;

[My SQL] 分组数据

SELECT子句顺序:

[My SQL] 分组数据

关于子句顺序的示例:

[My SQL] 分组数据