idescendant

SysCube.idescendant(fix, dimensions, submit=True, clear_agg_nodes=False)

递归汇总维度

根据维度表达式确定的数据范围、以及需要汇总的维度和成员。 按顺序递归汇总所有目标节点下的非叶子节点。

参数
  • fix (str) – 维度表达式,确定汇总涉及的数据范围

  • dimensions (Union[str, Iterable[str], Dict[str, Union[str, Iterable[str]]]]) – 需要汇总的维度

  • submit (bool) – 是否将汇总结果直接入库

  • clear_agg_nodes (bool) – 是否在保存前先删除汇总节点的数据

提示

入参 dimension 支持三种格式

  • str : 维度名称,表示汇总至该维度的根节点

  • Iterable[str] : 多个维度名称,表示按顺序进行汇总,汇总至根节点

  • Dict : 维度名称 -> 维度成员(可多个),表示按顺序汇总到指定的单个或多个成员

重要

  • 对于 fix 中没有出现的维度,会以 Base(#root,0) 自动补全表达式。

  • 最终保存的数据将只包含本次参与汇总的父节点,叶子(Base)节点不会参与保存。

示例

fix = 'Year{2021;2022}->Entiy{Base(TotalEntity,0)}'
cube = SysCube('example')
# 汇总至Account维度根节点
cube.idescendant(fix, 'Account')
# 依次汇总Account维度,Version维度至根节点
cube.idescendant(fix, ['Account', 'Version'])
# 先汇总Account至CostA, CostB,再汇总Version维度至Version1
cube.idescendant(fix, {
    'Account': ['CostA', 'CostB'],
    'Version': 'Version1'
})
返回类型

Union[DataFrame, Any]

返回

  • 如果不提交汇总结果,将返回汇总结果,无汇总数据返回空 DataFrame

  • 如果提交汇总结果,将返回数据保存结果,无汇总数据返回 None

参见

如果不需要递归汇总,请使用 ichildren