SQL 之 Group By
Group By从字面意义上理解就是根据By指定的规则对数据进行分组,所谓的分组就是将一个数据表划分成若干个小区域。
例如:有这么一张表
在执行group by 类别操作之后表就变成了这种形式
类别 | 组 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
a |
|
||||||||||||
b |
|
||||||||||||
c |
|
因为是按照类别进行分组,所以分组后的表中就只剩下字段类别了,其他的字段全部被保存在组中。
注意:组中的字段是无法被SELECT关键字访问的,如果访问了就会出错。
例如: Select 数量 from test group
by 类别;
这时软件就会提示——(在sql server中是这样的,在mysql中是随便列出组中的一列)
选择列表中的列 '数量' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
因为数量和摘要字段都在组中,SELECT关键字找不到这两个字段,所以就会出错。
如果只是查询 类别就不会出现问题,因为 类别不在组中,所以SELECT关键字就可以找到该字段。