ROLLUP、CUBE、GROUP BY的使用区别
区别 by group cube 使用 Rollup
2023-09-14 08:58:26 时间
1、ROLLUP:根据维度在数据结果集中进行的聚合操作,可多维度
SELECT count(*) num,MONTH(register_time) times,`status` FROM `user` group by times,`status` WITH ROLLUP;
使用ROLLUP多维度聚合操作可以,高效率的查出(个人需求):每个月有多少有效用户、无效用户及总用户量。
维度分析:注:第一维度(group by后的第一个属性)不当单独为空;不支持ORDER BY
表示最后的聚合及总数-无维度;
表示5月注册的总人数-times是维度;
表示5月的有效用户的人数-times、status是维度
引用说明:
select empid,custid, year(orderdate) year, sum(qty) sum from rollup group by empid,custid,year(orderdate) with rollup;
其中(null,null,null)表示最后的聚合
(empid,custid,year)表示对这3列进行分组的聚合结果
(empid,custid,null)表示对(empid,custid)两列进行分组的聚合结果
(empid,null,null)表示仅对(empid)一列进行分组的聚合结果
2、CUBE mysql版本不支持
This version of MySQL doesn't yet support 'CUBE'
3、GROUP BY在多维度查询中,效率低,需要遍历表多次
相关文章
- PHP7 引入的“??” 和“?:”的区别
- 你可以说出export export default || model.exports exports 的区别吗(一)
- 深入理解C# 静态类与非静态类、静态成员的区别
- 大数据与应用统计学的区别与联系
- 【MySQL】in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
- MongoDB和Redis区别
- Computer:网页设计语言(HTML+CSS+Javascript)的简介、区别理解之详细攻略
- java中static、final 和 static final之间的区别
- 【关于ChatGPT的30个问题】10、ChatGPT与其他自然语言处理技术的区别是什么?/ By 禅与计算机程序设计艺术
- apt指令的autoclean,clean,autoremove的区别
- 存储过程和函数的区别
- 在 TypeScript 中,{},object 和 Object 表示三个不同的类型,它们的区别和用途