先通過group by得到每個分類別的總和,再通過開窗函式計算整體的總和,兩者相除就得到佔比了。
當over()後不加任何內容時,就是對所有的資料進行彙總。
在oracle中,也可以使用專門的比例函式「ratio_to_report」來直接計算
上述操作可以更改如下:
select sites_id,channel_id,
round
(ratio_to_report(volume)
over
(partition
by sites_id),2
)as rate
from
(select sites_id,channel_id,
sum(volume)
as volume
from volume
group
by sites_id,channel_id
) t1
sql 累計佔比 SQL語句 求總和的百分比
問題 求特定列中的值佔總和的百分比。例如,確定所有deptno 10工資佔總工資的百分比 deptno 10的工資在總工資中的百分比數 解決方案 總的來說,在sql中計算佔總數的百分比跟書面計算一樣 先除後乘。這個例子要計算表emp中deptno 10工資所佔的百分比。首先,算出deptno 10的...
sql語句求百分比
此sql語句包括了兩個聚合函式做除法求百分比,並保留兩位小數,直接輸出字串形式的百分比。以及對case when在聚合函式的應用。select ss.ss name,ss id,count ea.ea id as eacounts,回單交換單個數 count eb.eb id as ebcounts...
oracle 求百分比
oracle求百分比 例子 求name為dead的記錄所佔百分比 select tt.retrieve retrievedrate,tc.公司名稱 companyname,tc.部門名稱 deptname,tc.使用者名稱 username,tc.nodename nodename,tc.proce...