原資料
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題,但是怎樣保證狀態不重不漏?常用的方法就是增維,比如按照排序大小擴充套件啦,按照字典序擴充套件啦從而使得狀態不重,但是還有兩種方法可以使得...