[英]Group by and divide
我有下表 sql 的會計科目(A 是成本科目,B 是人數),cc 作為成本中心。 所以我想要做的是將賬戶 A 的金額除以每個 cc 的賬戶 B
帳戶 | 抄送 | 數量 |
---|---|---|
一個 | X | 1 |
一個 | 是的 | 2 |
乙 | z | 4 |
乙 | 是的 | 1 |
一個 | z | 1 |
乙 | X | 2 |
所以結果是:
帳戶 | 抄送 | 數量 |
---|---|---|
一個 | X | 1 /2 |
一個 | 是的 | 2 |
乙 | z | 0 |
乙 | 是的 | 0 |
一個 | z | 1 /4 |
乙 | X | 0 |
我正在考慮一個小組,但我是 sql 的初學者,不知道如何使用它提前感謝您的幫助!
對於您指定的結果,您可以使用 window 函數:
select t.*,
(case when account = 'A'
then amount * 1.0 / sum(case when account = 'B' then amount end) over (partition by cc)
else 0
end) as ratio
from t;
在某些情況下,我只會使用常規組:
with cc_amts as (
select cc,
sum(case when account = 'A' then amount else 0 end) amt_a,
sum(case when account = 'B' then amount else 0 end) amt_b
from t
group by cc)
select cc, amt_a / amt_b
from cc_amts;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.