首页 > 解决方案 > 分组和划分

问题描述

我在会计科目的 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 的初学者,不知道如何使用它提前感谢您的帮助!

标签: sqlgroup-by

解决方案


对于您指定的结果,您可以使用窗口函数:

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;

推荐阅读