mysql的withrollup
来源:互联网 发布:mac无法连接localhost 编辑:程序博客网 时间:2024/06/14 22:39
转自http://blog.csdn.net/lxz3000/article/details/6174678
MySQL的扩展SQL中有一个非常有意思的应用WITH ROLLUP,在分组的统计数据的基础上再进行相同的统计(SUM,AVG,COUNT…),非常类似于Oracle中统计函数的功能,Oracle的统计函数更多更强大。mysql中的with rollup可以得到每个分组的汇总级别的数据。
下面演示单个司机以及所有司机的总行驶里程数和平均行驶里程数:
mysql> select name,sum(miles) as 'miles/driver'
-> from driver_log group by name with rollup;
+-------+--------------+
| name | miles/driver |
+-------+--------------+
| Ben | 362 |
| Henry | 911 |
| Suzi | 893 |
| NULL | 2166 |
+-------+--------------+
4 rows in set (0.00 sec)
mysql> select name,avg(miles) as driver_avg
-> from driver_log group by name with rollup;
+-------+------------+
| name | driver_avg |
+-------+------------+
| Ben | 120.6667 |
| Henry | 182.2000 |
| Suzi | 446.5000 |
| NULL | 216.6000 |
+-------+------------+
4 rows in set (0.00 sec)
mysql> select name,sum(miles) as 'miles/driver',avg(miles) as driver_avg
-> from driver_log group by name with rollup;
+-------+--------------+------------+
| name | miles/driver | driver_avg |
+-------+--------------+------------+
| Ben | 362 | 120.6667 |
| Henry | 911 | 182.2000 |
| Suzi | 893 | 446.5000 |
| NULL | 2166 | 216.6000 |
+-------+--------------+------------+
4 rows in set (0.00 sec)
在多个分组下WITH ROLLUP同样有效:
mysql> select srcuser,dstuser,count(*) from mail group by srcuser,dstuser;
+---------+---------+----------+
| srcuser | dstuser | count(*) |
+---------+---------+----------+
| barb | barb | 1 |
| barb | tricia | 2 |
| gene | barb | 2 |
| gene | gene | 3 |
| gene | tricia | 1 |
| phil | barb | 1 |
| phil | phil | 2 |
| phil | tricia | 2 |
| tricia | gene | 1 |
| tricia | phil | 1 |
+---------+---------+----------+
10 rows in set (0.05 sec)
mysql> select srcuser,dstuser,count(*) from mail group by srcuser,dstuser with rollup;
+---------+---------+----------+
| srcuser | dstuser | count(*) |
+---------+---------+----------+
| barb | barb | 1 |
| barb | tricia | 2 |
| barb | NULL | 3 |
| gene | barb | 2 |
| gene | gene | 3 |
| gene | tricia | 1 |
| gene | NULL | 6 |
| phil | barb | 1 |
| phil | phil | 2 |
| phil | tricia | 2 |
| phil | NULL | 5 |
| tricia | gene | 1 |
| tricia | phil | 1 |
| tricia | NULL | 2 |
| NULL | NULL | 16 |
+---------+---------+----------+
15 rows in set (0.00 sec)
- mysql的withrollup
- 【mysql】mysql的SUBSTRING_INDEX
- 【MySQL】MySQL的数据类型
- 【MySQL】MySQL数据库的同步
- MYSQL的MySQL Show命令
- Mysql连接的mysql结构
- Mysql连接的mysql结构
- MYSQL-mysql的时间函数
- 【mysql】mysql的优化步骤
- Mysql 改变mysql的密码
- [MySQL] - MySQL的Grant命令
- [MySQL] - MySQL的Grant命令
- [MySQL] - MySQL的Grant命令
- [MySQL] - MySQL的Grant命令
- mysql是什么?mysql的特点
- [MySQL] - MySQL的Grant命令
- 【MySQL】MySQL的存储引擎
- 【MySQL】MySQL的数据类型优化
- jquery中使用 delegate 代理 hover 失效
- Hadoop学习常见问题及答案整理(一)
- 输出单词复数
- Java 8新特性终极指南
- Servlet笔记——(2.2.1) 实现Servlet接口
- mysql的withrollup
- 关于阿里妈妈淘宝客定向协议的问题
- 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA
- 前端到后端数组传值
- 最长回文子串的解法
- git tag使用
- WIN2008 静态路由失效
- Android内存优化之——static使用篇(使用MAT工具进行分析)
- mysql获取近7天每天数据,无数据补0