按不同維度組合並聚合方法

2021-10-09 21:37:52 字數 1179 閱讀 2150

grouping sets,在乙個 group by 查詢中,根據不同的維度組合進行聚合,等價於將不同維度的 group by 結果集進行 union all

cube,根據 group by 的維度的所有組合進行聚合

rollup,是 cube 的子集,以最左側的維度為主,從該維度進行層級聚合。

select order_id, departure_date, count(*) as cnt

from order_info

group by order_id, departure_date

grouping sets (order_id,(order_id,departure_date));

---- 等價於以下

group by order_id union all group by order_id,departure_date

select order_id, departure_date, count(*) as cnt

from order_info

group by order_id, departure_date

with cube;

---- 等價於以下

select count(*) as cnt from order_info

union all group by order_id

union all group by departure_date

union all group by order_id,departure_date

select order_id, departure_date, count(*) as cnt

from order_info

group by order_id, departure_date

with rollup;

---- 等價於以下

select count(*) as cnt from order_info union all group by order_id

union all group by order_id,departure_date

mongodb按不同時間粒度聚合查詢

在使用mongodb時需要按照不同的時間粒度來對資料處理 粒度為 日 周 月 在使用時遇見了一些耽誤時間的事情 整理一下 具體語法如下 db.collection.aggregate 開始的時候我選擇了 dayofyear week month 但是執行的時候發現 week 並不是遵循國人的習慣以周...

不同的有序陣列合併

有序陣列合併 void orderlistmerge int b self printlist a length alen self printlist b length blen int result 14 int p 0,q 0,i 0 p為a陣列下標 q為b陣列下標,i為合併陣列下標 任意子陣...

js陣列合併方法 總結

concat 方法將傳入的陣列或非陣列值與原陣列合併,組成乙個新的陣列並返回。該方法會產生乙個新的陣列,但並不改變原陣列。arr1 1,2 arr2 aa as console.log arr1.concat arr2 1,2,aa as 或console.log concat arr1,arr2 ...