相关疑难解决方法(0)

帮助计算分层数据集中的复数和

我有一个有趣的SQL问题.我有一个分层的表格来制作物料清单.与此类似:

ASSEMBLY
---------
parent_part_id
part_id
quantity
Run Code Online (Sandbox Code Playgroud)

我用这样的查询得到了这个结构的层次结构:

SELECT level, part_id, quantity
from assembly
start with parent_part_id = 1
connect by parent_part_id = prior part_id;
Run Code Online (Sandbox Code Playgroud)

输出可能如下所示:

level  part_id  quantity
-----  -------  ---------
1      2        2
2      3        10
1      4        2
2      5        1    
3      3        5
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

问题是:如何计算顶级装配所需的每个零件的总数(第1部分)?

按部分对此结果进行分组并对数量求和是不正确的,因为数量应乘以层次结构中当前部分正上方的部分数量,递归地向上到树.

我认为这是一个LAG功能,但无法将其可视化.

编辑:预期结果:

part_id  quantity
-------  --------
2        2
3        30
4        2
5        2
Run Code Online (Sandbox Code Playgroud)

更多编辑:我通过此查询获得有趣的结果

SELECT rownum, level lvl, part_id, quantity, unit_of_measure
                , connect_by_isleaf || sys_connect_by_path(quantity,'*') math
            from assembly
            start with …
Run Code Online (Sandbox Code Playgroud)

sql oracle lag hierarchical-data

2
推荐指数
1
解决办法
5038
查看次数

标签 统计

hierarchical-data ×1

lag ×1

oracle ×1

sql ×1