SQL 数据分组
来源:互联网 发布:黑科技网络验证管理端 编辑:程序博客网 时间:2024/05/22 03:52
数据分组用来将数据分为多个逻辑组,从而可以对每个组进行聚合运算。
SQL语句中使用GROUP BY子句进行分组,使用方式为“GROUP BY 分组字段”。分组语句一般和聚合函数一起使用,GROUP BY子句负责将数据分成逻辑组,而聚合函数则对每个组进行统计计算。
需要分组的所有列都必须位于GROUP BY子句的列名列表中,没有出现在GROUP BY子句中的列是不能放到SELECT语句后的列名列表中的(聚合函数除外)。
比如下面的SQL语句是错误的:
SELECT 销售地区,销售金额 FROM demo_salesday GROUP BY 销售地区;
而下面的SQL语句是正确的:
SELECT 销售地区,AVG(销售金额) FROM demo_salesday GROUP BY 销售地区;
执行完毕后我们能看到下面的结果:
+----------+---------------+
| 销售地区 | AVG(销售金额) |
+----------+---------------+
| 东北 | 304.142500000 |
| 华东 | 297.203684210 |
| 华中 | 320.510000000 |
| 华北 | 287.794531250 |
| 华南 | 292.066271186 |
| 西北 | 329.240000000 |
| 西南 | 323.786000000 |
+----------+---------------+
GROUP BY子句中可以指定多个列,只需要将多个列的列名用逗号隔开即可。指定多个分组规则以后,数据库系统将按照定义的分组顺序对数据进行逐层分组。首先按照第一个分组列进行分组,然后在每个小组内按照第二个分组列进行再次分组……逐层分组,从而实现“组中组”的效果,而查询的结果集是以最末一级分组来进行输出的。比如下面的SQL语句将会列出所有销售地区及城市的情况:
SELECT 销售地区,销售城市 FROM demo_salesday GROUP BY 销售地区,销售城市;
执行完毕我们就能看到下面的结果:
+----------+----------+
| 销售地区 | 销售城市 |
+----------+----------+
| 东北 | 吉林 |
| 东北 | 辽宁 |
| 华东 | 上海 |
| 华东 | 山东 |
| 华中 | 河南 |
| 华北 | 北京 |
| 华北 | 天津 |
| 华北 | 河北 |
| 华南 | 广州 |
| 华南 | 海南 |
| 西北 | 陕西 |
| 西南 | 重庆 |
+----------+----------+
- SQL必知必会--分组数据
- SQL 数据分组
- [My SQL] 分组数据
- SQL 4. 数据分组 - 数据分组入门
- sql server数据分组统计
- SQL 取分组后前三条数据
- SQL数据排序与分组
- SQL 4. 数据分组 - 2 数据分组与聚合函数
- 【SQL】分组数据,过滤分组-group by , having
- sql数据分组重复的取一条
- SQL 4. 数据分组 - HAVING语句
- SQL数据的分组与聚合
- SQL 函数与分组查询数据
- SQL基础--数据分组和haveing语句
- SQL分组处理气象数据及注意事项
- SQL基础(一七)--- 数据分组
- SQL必知必会 笔记 第十章 分组数据
- sql 分组取最新的数据
- 开发笔记之20140224
- 【Android New Features】—— 关于ADT 17的BuildConfig.DEBUG
- svn revert整个目录
- hdu 3336 Count the string KMP+DP
- ArcEngine WGS84坐标与Beijing54坐标的相互转换
- SQL 数据分组
- 序列化和反序列化,异步调用web/wcf/函数
- 揍籽尊啄琢酌准籽坐综啄阻罪锥抓阻ksqqvs
- C语言实现直接插入排序
- Java常见面试题
- 机房搬迁双机热备软件配置信息提取
- 三大UML建模工具Visio、Rational Rose、PowerDesign的区别
- net-snmp agent开发详解,非常简单
- C++IO对象不可复制或赋值