EAV 模型下多表同指标 + 不同粒度的达成率计算

场景说明

银行业务中存在两张 EAV 结构的事实表,粒度不同:

表名用途组织粒度
实际值表记录实际完成值支行
预算值表记录预算目标值分行

两张表共用同一个指标维度表,组织层级为:总行 → 分行 → 支行。

系统中定义了自定义指标:

达成率 = SUM(实际值) / SUM(预算值)

期望行为

单表查询

提问期望结果
某分行的营业收入预算值返回预算值表中该分行的营业收入预算
某分行的营业收入实际值返回实际值表中该分行下所有支行的营业收入汇总

跨表计算

提问期望结果
某分行的营业收入及达成率营业收入取自实际值表(按表优先级),达成率正确计算
某分行各指标的达成率每个指标的达成率 = 该分行实际值汇总 ÷ 该分行预算值

核心规则

  1. 指标名称匹配时,优先从高优先级表取值(实际值表 > 预算值表)
  2. 跨表计算时,分子分母需按各自表的粒度正确聚合后再计算
  3. 组织维度筛选需同时作用于分子和分母,确保口径一致