Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Join 连接和分组结果的Neo4j Cypher查询_Join_Neo4j_Cypher_Distinct_Average - Fatal编程技术网

Join 连接和分组结果的Neo4j Cypher查询

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 密码查询(到目前为止) 我的问题是匹配返回了重复的订单结果,我相信,因为如果一个订单有多个

我正在尝试使用这个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
密码查询(到目前为止)

我的问题是匹配返回了重复的订单结果,我相信,因为如果一个订单有多个捐赠产品,那么同一个订单会返回多个节点

基本上,我试图获得所有订单,其中至少有一个捐赠产品。然后,返回订单中有多少订单有捐赠产品,以及这些订单的平均订单价值是多少


有人对这个问题有什么建议吗?提前谢谢

您就快到了,我们只需在返回之前获得不同的订单即可

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子句,但不确定语法。谢谢你的帮助!