• ROLLUP、CUBE、GROUP BY的使用区别


    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在多维度查询中,效率低,需要遍历表多次

  • 相关阅读:
    git注册和基本命令
    thinkphp概述2
    thinkphp概述
    PHP基础知识总结
    phpmyadmin教程
    开发环境wamp3.06 + Zend studio 12 调试配置
    PHP标记风格,编码规范
    PHP开发工具 zend studio
    php与ajax技术
    可变参模板template
  • 原文地址:https://www.cnblogs.com/adolfmc/p/12060793.html
Copyright © 2020-2023  润新知