0

我正在尝试确定任务树中每个任务组的平均进度。问题是只有叶节点(位于不同的表 - 子表 -)实际上具有进度字段。

我有一个任务(父)表和一个活动(子)表。他们两个共享ID。我应该指出我在我的数据库中使用ltree扩展。

我正在尝试制作一个显示整个树和每个节点级别平均进度的列的视图。我必须从最内层开始计算并在树结构中建立自己的方式,但我似乎无法做到正确。

我尝试使用递归 CTE窗口函数来解决这个问题,但无济于事。Postgres 不允许在递归 cte的递归项中使用聚合函数,所以这不起作用。

这些是我的表(简化):

tasks:
=======
id -- SERIAL
parent_id -- INTEGER
project_id -- INTEGER
name -- VARCHAR
task_group -- BOOL
path -- LTREE

activities:
===========
id -- INTEGER
progress -- INTEGER

编辑

这是截至目前的视图的屏幕截图。我能够获得所有叶节点的平均进度,但这并不是我所需要的。应该为树中的每个级别计算平均进度,然后在节点层次结构中向上构建它。

任务表

对此的任何见解将不胜感激。提前致谢。

4

0 回答 0