What is the Cypher query to get the difference between each ChangeTime's 'at' property so I know how frequency of the change?
如果你要堅持平原Cypher支架,你可以使用一個list comprehension:
MATCH (p:Profile)-[:UPDATED_ON]->(ct:ChangeTime)
WITH p, ct
ORDER BY ct.at
WITH p, collect(ct.at) AS ct_ats
RETURN p, [i IN range(0, length(ct_ats)-2) | ct_ats[i+1] - ct_ats[i]] AS diffs
這將返回:
╒══════════╤══════════╕
│p │diffs │
╞══════════╪══════════╡
│{name: ME}│[100, 300]│
└──────────┴──────────┘
來確定最小和最大的DIFF值,你必須UNWIND
的收集和使用min
和max
聚合函數:
MATCH (p:Profile)-[:UPDATED_ON]->(ct:ChangeTime)
WITH p, ct
ORDER BY ct.at
WITH p, collect(ct.at) AS ct_ats
WITH p, [i IN range(0, length(ct_ats)-2) | ct_ats[i+1] - ct_ats[i]] AS diffs
UNWIND diffs AS diff
RETURN p, min(diff) AS minDiff, max(diff) AS maxDiff
這給:
╒══════════╤═══════╤═══════╕
│p │minDiff│maxDiff│
╞══════════╪═══════╪═══════╡
│{name: ME}│100 │300 │
└──────────┴───────┴───────┘
通過「如何變化的頻率」,你實際上意味着「變化率」? – cybersam