rollup分析函式

2021-08-16 11:10:46 字數 2243 閱讀 7962

表的初始資料:

使用rollup進行彙總之後的資料:

可以改寫為:

使用group by實現roll up

[sql]view plain

copy

select

ta.first_name, 

sum(ta.salary) 

assalary  

from

t_test1 ta  

group

byta.first_name  

union

allselect

'total'

, sum

(tb.salary) 

assalary  

from

t_test1 tb  

用多列rollup操作

使用group by代替實現

[sql]view plain

copy

select

tt.first_name, tt.manager_id, 

sum(tt.salary)  

from

t_test2 tt  

group

bytt.first_name, tt.manager_id  

union

allselect

tt.first_name, 

null

, sum

(tt.salary)  

from

t_test2 tt  

group

bytt.first_name  

union

allselect

null

, null

, sum

(tt.salary)  

from

t_test2 tt  

grouping的作用

如果顯示「1」表示grouping函式對應的列(例如job欄位)是由於rollup函式所產生的空值對應的資訊,即對此列進行彙總計算後的結果。

如果顯示「0」表示此行對應的這列參未與rollup函式分組彙總活動

GROUP分組函式之ROLLUP

rollup函式的使用 案例1需求 統計每個部門每個職位的薪水和 統計每個部門所有職位的薪水小計 統計所有部門所有職位的薪水合計 需要顯示部門名 職位名和累加後的薪水 需求1 select d.dname,e.job,sum e.sal sum sal from dept d,emp e where...

rollup 和rollup 的區別

引用 使用裡面的資料進行查詢來區別rollup 和rollup 的使用。select f workarea,f line,sum f pagesnumber sum pagesnumbers from t testcount group by rollup f workarea,f line 返回結...

sql小計彙總 rollup用法例項分析

這裡介紹sql server2005裡面的乙個使用例項 create table tb province nvarchar 10 city nvarchar 10 score int insert tb select 陝西 西安 3union allselect 陝西 安康 4union allse...