Cypher - 来自可变长度关系的甘特图
Cypher - Gantt chart from variable length relationships
我是 Cypher 的新手,到目前为止是自学的。我已经设法通过基本查询获得创意,但现在遇到了一些我不知道如何实现的问题....
给定作业 ID 依赖项列表:
│"A"│"Rel" │"B"│
│29 │"DependantOn" │8 │
│21 │"DependantOn" │8 │
│20 │"DependantOn" │8 │
│22 │"DependantOn" │8 │
│24 │"DependantOn" │9 │
│25 │"DependantOn"│9 │
│23 │"DependantOn"│9 │
│26 │"DependantOn"│11│
│20 │"DependantOn"│11│
│22 │"DependantOn"│11│
│31 │"DependantOn"│23│
│8 │"DependantOn"│1│
│11 │"DependantOn"│1│
│29 │"DependantOn"│1│
│20 │"DependantOn"│1│
│20 │"DependantOn"│10│
│30 │"DependantOn"│10│
│30 │"DependantOn"│20│
│16 │"DependantOn"│5│
│16 │"DependantOn"│5│
│17 │"DependantOn"│5│
│12 │"DependantOn"│5│
│9 │"DependantOn"│2│
│28 │"DependantOn"│2│
│13 │"DependantOn"│2│
│27 │"DependantOn"│13│
│28 │"DependantOn"│13│
│29 │"DependantOn"│15│
│30 │"DependantOn"│15│
│25 │"DependantOn"│14│
│31 │"DependantOn"│14│
│9 │"DependantOn"│3│
│25 │"DependantOn"│3│
│23 │"DependantOn"│3│
│27 │"DependantOn"│3│
│23 │"DependantOn"│12│
│31 │"DependantOn"│12│
│25 │"DependantOn"│6│
│14 │"DependantOn"│6│
│31 │"DependantOn"│6│
│29 │"DependantOn"│7│
│30 │"DependantOn"│7│
│15│"DependantOn"│7│
│10│"DependantOn"│4│
│18│"DependantOn"│4│
│19│"DependantOn"│4│
我想创建一个 table 来根据最长路径显示工作的 运行 级别并显示最长路径,如 Gnatt 图表:
> L1 >>> L2 >>> L3 >>> L4
> 1 >>> 8 >>> 20
> 8 >>> >>> >>> 29
> 8 >>> 21
> 8 >>> 22
> 2 >>> 9 >>> 23
> 3 >>> 9
> 9 >>> 24
> 9 >>> 25
> 4 >>> 10 >>> 20
> 11 >>> 20
> 1 >>> 11 >>> 26
> 1 >>> >>> >>> 20 >>> 30
> 5 >>> 12 >>> >>> >>> 31
> 2 >>> 13 >>> 27
> 3 >>> >>> >>> 23 >>> 31
> 12 >>> 23
> 6 >>> 14 >>> 25
> 7 >>> 15 >>> >>> >>> 29
> 11 >>> 22
> 1 >>> >>> >>> >>> >>> 29
> 10 >>> >>> >>> 30
> 5 >>> 16
> 5 >>> 17
> 2 >>> >>> >>> 28
> 13 >>> 28
> 15 >>> >>> >>> 30
> 14 >>> >>> >>> 31
> 3 >>> >>> >>> 25
> 3 >>> >>> >>> 27
> 6 >>> >>> >>> 25
> 6 >>> >>> >>> >>> >>> 31
> 7 >>> >>> >>> >>> >>> 29
> 7 >>> >>> >>> >>> >>> 30
> 4 >>> 18
> 4 >>> 19
我尝试对 *2, *1, *0
使用相同的 (:File)-[:DependantOn*3]->(:File)
和 collect with
然后排序,但这没有用。我需要一些方法来识别什么是 L1、L2、L3、L4 以及最长的路径是什么,将它们分配到正确的级别,并在适用的情况下将“空值”变为“>>>”。
我无法使用 [] 或 (),因为这些节点之外还有许多其他节点和关系(例如文件内容、数据类型等)
任何指针都会有所帮助。
你试过吗?
MATCH p= (start:File)-[:TRIGGER*0..3]->(end:File)
WHERE NOT EXISTS (()-[:DependantOn]->(start))
RETURN end, MAX(length(p))+1 AS level
它会 return 29 在 L3,我猜它应该在哪里,因为它只取决于 L2 的项目
我是 Cypher 的新手,到目前为止是自学的。我已经设法通过基本查询获得创意,但现在遇到了一些我不知道如何实现的问题....
给定作业 ID 依赖项列表:
│"A"│"Rel" │"B"│
│29 │"DependantOn" │8 │
│21 │"DependantOn" │8 │
│20 │"DependantOn" │8 │
│22 │"DependantOn" │8 │
│24 │"DependantOn" │9 │
│25 │"DependantOn"│9 │
│23 │"DependantOn"│9 │
│26 │"DependantOn"│11│
│20 │"DependantOn"│11│
│22 │"DependantOn"│11│
│31 │"DependantOn"│23│
│8 │"DependantOn"│1│
│11 │"DependantOn"│1│
│29 │"DependantOn"│1│
│20 │"DependantOn"│1│
│20 │"DependantOn"│10│
│30 │"DependantOn"│10│
│30 │"DependantOn"│20│
│16 │"DependantOn"│5│
│16 │"DependantOn"│5│
│17 │"DependantOn"│5│
│12 │"DependantOn"│5│
│9 │"DependantOn"│2│
│28 │"DependantOn"│2│
│13 │"DependantOn"│2│
│27 │"DependantOn"│13│
│28 │"DependantOn"│13│
│29 │"DependantOn"│15│
│30 │"DependantOn"│15│
│25 │"DependantOn"│14│
│31 │"DependantOn"│14│
│9 │"DependantOn"│3│
│25 │"DependantOn"│3│
│23 │"DependantOn"│3│
│27 │"DependantOn"│3│
│23 │"DependantOn"│12│
│31 │"DependantOn"│12│
│25 │"DependantOn"│6│
│14 │"DependantOn"│6│
│31 │"DependantOn"│6│
│29 │"DependantOn"│7│
│30 │"DependantOn"│7│
│15│"DependantOn"│7│
│10│"DependantOn"│4│
│18│"DependantOn"│4│
│19│"DependantOn"│4│
我想创建一个 table 来根据最长路径显示工作的 运行 级别并显示最长路径,如 Gnatt 图表:
> L1 >>> L2 >>> L3 >>> L4
> 1 >>> 8 >>> 20
> 8 >>> >>> >>> 29
> 8 >>> 21
> 8 >>> 22
> 2 >>> 9 >>> 23
> 3 >>> 9
> 9 >>> 24
> 9 >>> 25
> 4 >>> 10 >>> 20
> 11 >>> 20
> 1 >>> 11 >>> 26
> 1 >>> >>> >>> 20 >>> 30
> 5 >>> 12 >>> >>> >>> 31
> 2 >>> 13 >>> 27
> 3 >>> >>> >>> 23 >>> 31
> 12 >>> 23
> 6 >>> 14 >>> 25
> 7 >>> 15 >>> >>> >>> 29
> 11 >>> 22
> 1 >>> >>> >>> >>> >>> 29
> 10 >>> >>> >>> 30
> 5 >>> 16
> 5 >>> 17
> 2 >>> >>> >>> 28
> 13 >>> 28
> 15 >>> >>> >>> 30
> 14 >>> >>> >>> 31
> 3 >>> >>> >>> 25
> 3 >>> >>> >>> 27
> 6 >>> >>> >>> 25
> 6 >>> >>> >>> >>> >>> 31
> 7 >>> >>> >>> >>> >>> 29
> 7 >>> >>> >>> >>> >>> 30
> 4 >>> 18
> 4 >>> 19
我尝试对 *2, *1, *0
使用相同的 (:File)-[:DependantOn*3]->(:File)
和 collect with
然后排序,但这没有用。我需要一些方法来识别什么是 L1、L2、L3、L4 以及最长的路径是什么,将它们分配到正确的级别,并在适用的情况下将“空值”变为“>>>”。
我无法使用 [] 或 (),因为这些节点之外还有许多其他节点和关系(例如文件内容、数据类型等)
任何指针都会有所帮助。
你试过吗?
MATCH p= (start:File)-[:TRIGGER*0..3]->(end:File)
WHERE NOT EXISTS (()-[:DependantOn]->(start))
RETURN end, MAX(length(p))+1 AS level
它会 return 29 在 L3,我猜它应该在哪里,因为它只取决于 L2 的项目