分組合計之withrollup統計

2021-10-01 13:10:21 字數 2277 閱讀 4650

原資料

id    pipeid    pipename    pree    price    down    dgy    dzy    das    ddy    dtr

1    1    1#ad    1    22    1    1    3    1    3    1

2    2    2#ad    1    12    2    1    3    1    3    1

3    2    2#ad    2    21    3    1    3    1    3    1

4    4    4#ad    1    12    4    1    3    1    3    1

5    5    5#ad    1    23    5    1    3    1    3    1

1. with rollup統計使用

select pipename,sum(pree) as pree,sum(dgy) dgy,sum(das),sum(dzy) from pipe_c group by pipename  with rollup;

pipename    pree    dgy    sum(das)    sum(dzy)

1#    1    1    1    1

2#    1    2    1    3

3#    2    1    1    1

4#    1    1    1    1

5#    1    2    1    1

6    7    5    7

2.with rollup統計下, coalesce展示統計合計名稱

select coalesce(pipename,'合計') as pipename,sum(pree) as pree,sum(dgy) dgy,sum(das),sum(dzy) from pipe_c group by type,pipename  with rollup;

pipename    pree    dgy    sum(das)    sum(dzy)

1#    1    1    1    1

2#    1    2    1    3

3#    2    1    1    1

4#    1    1    1    1

5#    1    2    1    1

合計 6    7    5    7

2.with rollup統計下, 分組合計

select coalesce(pipename,'合計') as pipename,sum(pree) as pree,sum(dgy) dgy,sum(das),sum(dzy) from pipe_c group by type,pipename  with rollup;

pipename    pree    dgy    sum(das)    sum(dzy)

1#    1    1    1    1

2#    1    2    1    3

3#    2    1    1    1

合計    4    4    3    5

4#    1    1    1    1

5#    1    2    1    1

合計    2    3    2    2

合計    6    7    5    7

3.分組合計重新命名:使用case ... when 

select

type,case type when 0 then coalesce (pipename, '調入小計')

when 1 then coalesce (pipename, '調出小計')

else coalesce (pipename, '合計')

end,

sum(pree),

sum(price)

from

pipe_c

group by

type,

pipename with rollup;

0    1#    1    1

0    2#    1    2

0    3#    2    1

0    調入小計    4    4

1    4#    1    1

1    5#    1    1

1    調出小計    2    2

合計    6    6

分組合計且排序和顯示名稱

分組合計的乙個問題是,合計中最大的問題是 只能顯示groupby的字段,不能顯示其它的字段。有時還需要排序,就很麻煩。這裡有乙個實現。select a.b.zu no as zuhao,b.qu as quming,b.dui as duiming,b.zu as zuming from selec...

組合計數(初步)

組合數學主要是研究某組離散物件滿足一定條件的安排的存在性 構造及計數等問題。組合計數理論是組合數學中乙個最基本的研究方向,主要研究滿足一定條件的安排方式的數目及其計數問題。本課程主要介紹組合數學中常見的和重要的一些計數原理 計數方法和計數公式,包括一般的排列 組合的計算以及生成函式 容斥原理 反演原...

組合計數小啟發

在dp的領域中還有的很大一部分就是組合計數。以前做了fhq在集訓隊作業中的 連邊 這道題,大概就是要你給乙個圖連邊是的若干個點度數為奇數。比較容易發現是一道dp題,但是怎樣保證狀態不重不漏?常用的方法就是增維,比如按照排序大小擴充套件啦,按照字典序擴充套件啦從而使得狀態不重,但是還有兩種方法可以使得...