ROLLUP CUBE GROUP BY的使用區別

2022-03-18 12:24:39 字數 790 閱讀 2711

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在多維度查詢中,效率低,需要遍歷表多次

ROLLUP CUBE GROUP BY的使用區別

1 rollup 根據維度在資料結果集中進行的聚合操作,可多維度 select count num,month register time times,status from user group by times,status with rollup 使用rollup多維度聚合操作可以,高效率的查...

記憶體的使用 棧區 堆區 靜態區 唯讀區

記憶體的使用感覺好亂啊,需要整理一下!於是參考c primer與網上資源,整理如下 一 綜述 記憶體中的棧區分配的是區域性變數和函式的引數值的空間,棧的生長方向是從高往低的 堆區是向上增長的用於分配程式設計師申請的記憶體空間 比如new 申請的動態記憶體 注意它與資料結構中的堆是兩回事,分配方式倒是...

堆區的使用

define crt secure no warnings include include includeint getspace for int i 0 i 5 i return p void test01 手動在堆區建立的資料,要手動釋放 free p p null 注意 如果主調函式中沒有給指...