这是我在这个论坛上的第一个问题,所以我会尽量保持清楚。
我有 1 个entity
包含以下数据的表:
ATTR1 ATTR2 ATTR3 ATTR4
A Level 1 null 35
B Level 2 A 34
C Level 2 A 33
D Level 3 B 32
E Level 3 B 31
F Level 3 C 30
G Level 3 C 29
H Level 4 D 28
I Level 4 D 27
J Level 4 E 26
K Level 4 E 25
L Level 4 F 24
M Level 4 F 23
N Level 4 G 22
O Level 4 G 21
P Level 5 H 20
Q Level 5 H 19
R Level 5 H 18
S Level 5 O 17
ATTR1
节点名称在哪里。它也是主键。节点的级别在
哪里。节点的父节点的名称在
哪里。是根节点,它没有父节点,因此. 节点的成本在
哪里。ATTR2
ATTR3
A
NULL
ATTR4
现在的问题:
- 给定任何部分 X 和叶节点 Y(即 Y 是 X 的后代),从根到 X 或 X 到 Y 的直接后代的最昂贵路径是什么?
换句话说,假设 X 节点是D
并且 Y 节点是P
。从节点到根D-B-A
的路径是 ,而从叶子到节点的路径是P-H-D
。
如何计算每条路径的总成本并能够说出哪个更贵?
我的方法是做 2 个递归查询,每个路径 1 个查询以找到每个路径的 SUM。问题是我被迫创建了 2 个表并尝试将它们的所有数据放入 1 中。我觉得我已经走到了死胡同,它开始看起来有点长而且不可行。
任何帮助表示赞赏,最好是 PostgreSQL 语法。