Neo4j中的处理顺序和唯一属性
我试着使用ORDERBY子句和DISTINCT,但到目前为止处理得不好Neo4j中的处理顺序和唯一属性,neo4j,distinct,Neo4j,Distinct,我试着使用ORDERBY子句和DISTINCT,但到目前为止处理得不好 MATCH (p:Project {projectName: "Digital Lab"}) MATCH (p)<-[:PART_OF]-(d) RETURN d.date, d.prop1, d.prop2, d.prop3 ORDER BY d.date DESC LIMIT 10 现在我想得到一个表,它根据日期和唯一的prop1值具有最新的数据,这意味着 d.date d.prop1 d.prop2
MATCH (p:Project {projectName: "Digital Lab"})
MATCH (p)<-[:PART_OF]-(d)
RETURN d.date, d.prop1, d.prop2, d.prop3 ORDER BY d.date DESC LIMIT 10
现在我想得到一个表,它根据日期和唯一的prop1值具有最新的数据,这意味着
d.date d.prop1 d.prop2 d.prop3
123 a 123123 c54655
110 b 456464 d46546
103 c 454211 e45645
之后我用了这个,但像往常一样,我花了很多时间却没有进步
MATCH (p:Project {projectName: "Digital Lab"})
MATCH (p)<-[:PART_OF]-(d) WITH DISTINCT d.prop1 AS pro
RETURN d.date, pro, d.prop2, d.prop3 ORDER BY d.date DESC LIMIT 10
MATCH(p:Project{projectName:“数字实验室”})
匹配(p)您可以尝试以下查询:
MATCH (p)<-[:PART_OF]-(d)
WITH d.prop1 AS pro,d.date AS date, d
ORDER BY pro, date DESC
WITH collect(d) AS items
WITH items[0] AS d
RETURN d.date, d.prop1, d.prop2, d.prop3 ORDER BY d.date DESC LIMIT 10
MATCH(p)此处是用于测试的样本数据:
CREATE (p:Project {projectName : "Digital Lab"})
CREATE (d1 {date: 123, prop1: 'a', prop2: 123123, prop3 : 'c54655'})
CREATE (d2 {date: 111, prop1: 'a', prop2: 454565, prop3 : 'b75655'})
CREATE (d3 {date: 110, prop1: 'b', prop2: 456464, prop3 : 'd46546'})
CREATE (d4 {date: 103, prop1: 'c', prop2: 454211, prop3 : 'e45645'})
CREATE (d5 {date: 100, prop1: 'c', prop2: 465562, prop3 : 'f45646'})
CREATE (p)<-[:PART_OF]-(d1)
CREATE (p)<-[:PART_OF]-(d2)
CREATE (p)<-[:PART_OF]-(d3)
CREATE (p)<-[:PART_OF]-(d4)
CREATE (p)<-[:PART_OF]-(d5)
你可以在这里找到答案:或者像这样进行查询:MATCH(p:Project{projectName:“Digital Lab”})MATCH(p)Sweet lord,你用Neo4j帮了我两次忙!再次感谢布鲁诺!
CREATE (p:Project {projectName : "Digital Lab"})
CREATE (d1 {date: 123, prop1: 'a', prop2: 123123, prop3 : 'c54655'})
CREATE (d2 {date: 111, prop1: 'a', prop2: 454565, prop3 : 'b75655'})
CREATE (d3 {date: 110, prop1: 'b', prop2: 456464, prop3 : 'd46546'})
CREATE (d4 {date: 103, prop1: 'c', prop2: 454211, prop3 : 'e45645'})
CREATE (d5 {date: 100, prop1: 'c', prop2: 465562, prop3 : 'f45646'})
CREATE (p)<-[:PART_OF]-(d1)
CREATE (p)<-[:PART_OF]-(d2)
CREATE (p)<-[:PART_OF]-(d3)
CREATE (p)<-[:PART_OF]-(d4)
CREATE (p)<-[:PART_OF]-(d5)
MATCH (p:Project {projectName: "Digital Lab"})<-[:PART_OF]-(d)
WITH d as d ORDER BY d.prop1, d.date DESC
WITH d.prop1 as prop1, collect(d) as items
ORDER BY prop1
RETURN items[0]
╒════════════════════════════════════════════════════════╕
│"items[0]" │
╞════════════════════════════════════════════════════════╡
│{"prop2":123123,"date":123,"prop1":"a","prop3":"c54655"}│
├────────────────────────────────────────────────────────┤
│{"prop2":456464,"date":110,"prop1":"b","prop3":"d46546"}│
├────────────────────────────────────────────────────────┤
│{"prop2":454211,"date":103,"prop1":"c","prop3":"e45645"}│
└────────────────────────────────────────────────────────┘