cypher query用于计算层次结构中每个组件的总成本百分比

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cypher query用于计算层次结构中每个组件的总成本百分比相关的知识,希望对你有一定的参考价值。

我有一个物料清单数据集。

   *data model*
    (:part)
       -part_num
       -cost

    [:component_of]
       -quantity

以下查询将正确创建完整的BOM层次结构

MATCH path=(p:part)-[r:component_of*0..]->(fg:part)
WHERE fg.part_num = 'D100'
RETURN path

为了支持成本可视化,我试图计算每个组成部分归因于成品(fg:part)的成本百分比。我想实现的逻辑如下。

示例路径:

(A:一部分) - [:component_of] - >(B:部分) - [:component_of] - >(FG:部分)

  1. 对于每个部分,计算其父部分的成本百分比。 pct =(part.cost * relationship.quantity)/ parent_part.cost
  2. 返回层次结构并确定有效的百分比成本。如果(a)是(b)成本的50%,而(b)是(fg)成本的25%,那么(a)的有效百分比成本是.5 * .25 = .125或12.5% 。

这是可以在密码查询中完成的吗?我从哪里开始?

答案

尝试reduce功能:

MATCH path=(p:part)-[r:component_of*0..]->(fg:part)
WHERE fg.part_num = 'D100'
WITH path, 
     NODES(path) AS nds, 
     RELATIONSHIPS(path) AS rls
RETURN path, 
       REDUCE(acc=1.0, i IN RANGE(0, LENGTH(path)-1) | 
              0.0001 * acc * nds[i].cost*rls[i].quantity / nds[i+1].cost
       ) AS epc

以上是关于cypher query用于计算层次结构中每个组件的总成本百分比的主要内容,如果未能解决你的问题,请参考以下文章

withNavigation 只能用于导航器的视图层次结构

使用 Power Query 从 Excel 缩进中提取层次结构

软件工程中软件结构图和层次图的异同

计算机体系结构/内存层次

如何优化Neo4J Cypher查询?

如何优化 Neo4J Cypher 查询?