算出累積總計是乙個常見的需求,可惜以 sql 並沒有乙個很直接的方式達到這個需求。要以 sql 算出累積總計,基本上的概念與列出排名類似:第一是先做個**自我鏈結 (self join),然後將結果依序列出。在做列出排名時,我們算出每一行之前 (包含那一行本身) 有多少行數;而在做累積總計時,我們則是算出每一行之前 (包含那一行本身) 的總合。
來看看以下的例子。假設我們有以下的**:
total_sales**
name
sales
john
10jennifer
15stella
20sophia
40greg
50jeff20
要算出累積總計,我們就鍵入:
select a1.name, a1.sales, sum(a2.sales) running_total
from total_sales a1, total_sales a2
where a1.sales <= a2.sales or (a1.sales=a2.sales and a1.name = a2.name)
group by a1.name, a1.sales
order by a1.sales desc, a1.name desc;
結果:
name
sales
running_total
greg
5050
sophia
4090
stella
20110
jeff
20130
jennifer
15145
john
10155
在以上的 sql 語句中,where子句和order by子句讓我們能夠在有重複值時能夠算出正確的累積總計。
css百分比定位和百分比尺寸
只有設定了定位的 relative,absolute,fixed 的元素才有left,top等屬性。子元素relative定位 百分比定位和百分比尺寸都是相對于父元素,無論父元素有沒有定位 子元素absolute定位 百分比定位和百分比尺寸都是相對於最近的定位了的祖先元素,如果沒有則相對於視窗。可以...
sql操作歸類百分比
原資料 專案名稱 完成否 主閘 是 主閘 是 主閘 否 發動機 是 發動機 否 發動機 否 鏈條 是 鏈條 是 鏈條 否 想要得到的資料 專案名稱 完成百分比 主閘 2 3 發動機 1 3鏈條 2 3sql語句應該如何寫?select name,convert varchar 100 sum cas...
sql語句求百分比
此sql語句包括了兩個聚合函式做除法求百分比,並保留兩位小數,直接輸出字串形式的百分比。以及對case when在聚合函式的應用。select ss.ss name,ss id,count ea.ea id as eacounts,回單交換單個數 count eb.eb id as ebcounts...