Join 连接和分组结果的Neo4j Cypher查询
我正在尝试使用这个MySQL查询,并用Neo4j的Cypher语言编写它 MySQL查询Join 连接和分组结果的Neo4j Cypher查询,join,neo4j,cypher,distinct,average,Join,Neo4j,Cypher,Distinct,Average,我正在尝试使用这个MySQL查询,并用Neo4j的Cypher语言编写它 MySQL查询 SELECT COUNT(o.id) as orders, AVG(o.total) as avg FROM Order AS o INNER JOIN Product AS p ON o.id = p.orderId WHERE p.productType = 'donation' GROUP BY o.id 密码查询(到目前为止) 我的问题是匹配返回了重复的订单结果,我相信,因为如果一个订单有多个
SELECT COUNT(o.id) as orders, AVG(o.total) as avg FROM Order AS o
INNER JOIN Product AS p ON o.id = p.orderId
WHERE p.productType = 'donation'
GROUP BY o.id
密码查询(到目前为止)
我的问题是匹配返回了重复的订单结果,我相信,因为如果一个订单有多个捐赠产品,那么同一个订单会返回多个节点
基本上,我试图获得所有订单,其中至少有一个捐赠产品。然后,返回订单中有多少订单有捐赠产品,以及这些订单的平均订单价值是多少
有人对这个问题有什么建议吗?提前谢谢 您就快到了,我们只需在返回之前获得不同的订单即可
MATCH (o:Order)-[:CONTAINS]->(p:Product)
WHERE p.productType CONTAINS 'donation'
WITH DISTINCT o
RETURN COUNT(o) AS orders, AVG(o.orderBaseGrandTotal) AS avg;
你就快到了,我们只需要在回来之前拿到不同的订单就行了
MATCH (o:Order)-[:CONTAINS]->(p:Product)
WHERE p.productType CONTAINS 'donation'
WITH DISTINCT o
RETURN COUNT(o) AS orders, AVG(o.orderBaseGrandTotal) AS avg;
令人惊叹的!就这样。我仍在学习Cypher,并认为它是WITH子句,但不确定语法。谢谢你的帮助!令人惊叹的!就这样。我仍在学习Cypher,并认为它是WITH子句,但不确定语法。谢谢你的帮助!