You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SQL的partition与join语句计算各组织FinanceClassification占比

按组织统计各财务分类占比SQL实现

基础说明

  • 计算规则:统计每个组织下各财务分类的金额占该组织总金额的百分比,结果保留2位小数
  • 示例计算逻辑:
组织1 PRO占比 = 14/22.5*100 = 62.22%
组织1 SFC占比 = 8.5/22.5*100 = 37.78%
组织2 PRO占比 = 84/126*100 = 66.67%
组织2 SFC占比 = 42/126*100 = 33.33%
  • 实现约束:仅使用SQL的PARTITION和JOIN语句,不可使用CTE

实现方案

前提假设

原始数据表名为finance_data,核心字段如下:

  • organization_id:组织唯一标识
  • finance_classification:财务分类编码/名称
  • amount:对应财务分类的金额数值

最终SQL

SELECT 
    t1.organization_id,
    t1.finance_classification,
    t1.amount,
    ROUND(t1.amount / t2.org_total_amount * 100, 2) AS percentage
FROM 
    finance_data t1
INNER JOIN (
    SELECT DISTINCT
        organization_id,
        SUM(amount) OVER (PARTITION BY organization_id) AS org_total_amount
    FROM finance_data
) t2 ON t1.organization_id = t2.organization_id

逻辑说明

  1. 内层子查询使用PARTITION BY organization_id按组织分组计算每个组织的总金额,搭配DISTINCT去重后得到「组织ID-组织总金额」的映射表
  2. 外层将原始数据表和总金额映射表通过组织ID关联,用每行分类金额除以对应组织总金额再乘以100,保留两位小数得到最终占比

内容的提问来源于stack exchange,提问作者Katlego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 17:24:03