我想建立一个时间序列存储为neo4j时间树的直方图。 数据结构是由用户完成的事件,每个都有时间戳,比如用户购买类别。 我需要的是每个用户在开始和结束时间之间每个类别的浏览次数,间隔时间为(1秒到几天) 我的模型非常棒,图片分辨率非常好,因为我读neo4j documentation我找不到任何在一个查询中做到这一点,我担心每个用户的呼叫速度会很慢。Neo4j密码时间间隔直方图查询时间树
我知道,以暗号功能,但我不知道如何建立这样的查询。 我期待这样的事情(不工作)
MATCH startPath=(root)-[:`2010`]->()-[:`12`]->()-[:`31`]->(startLeaf),
endPath=(root)-[:`2011`]->()-[:`01`]->()-[:`03`]->(endLeaf),
valuePath=(startLeaf)-[:NEXT*0..]->(middle)-[:NEXT*0..]->(endLeaf),
vals=(middle)-[:VALUE]->(event)
WHERE root.name = 'Root'
RETURN event.name, count(*)
ORDER BY event.name ASC
GROUP BY event.timestamp % 1000*60*10 // 10 minutes histogram bar
然后我想有一个报告,有多少用户浏览到各网站类别:
0-9消息5,电子商务3; 10-19消息6,商业19; 1 20-29新闻2,商业8;
任何想法,如果它是可选的neo4j时间树模型? 如果是这样怎么样? :-)
有没有“GROUP BY”的暗号;你应该在WITH表达式中计算额外的列,然后如果你返回不同的值,它将以相同的方式运行。 – FrobberOfBits
是的,我知道GROUP BY缺失,我想创建基于时间的直方图。我可以做这样的事情: “WITH event.timestamp%1000 * 60 * 10”获得10分钟的酒吧? –
如果您在'RETURN'语句中放置'event.timestamp%1000 * 60 * 10',它应该自动分组,因为您正在使用'count'函数进行聚合。所以也许像'RETURN event.name,event.timestamp%1000 * 60 * 10 AS slice,count(*)ORDER BY slice'? –