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
Math neo4j cypher中的数学最大/最小值_Math_Neo4j_Cypher - Fatal编程技术网

Math neo4j cypher中的数学最大/最小值

Math neo4j cypher中的数学最大/最小值,math,neo4j,cypher,Math,Neo4j,Cypher,下面是我用cypher编写的一个工作查询,使用CASE表达式和符号数学函数来解决明显缺乏数学min方法的问题 MATCH (a)-[ar:REL]->(b)<-[br:REL]-(c) RETURN CASE sign(ar.integer-br.integer) WHEN 1 THEN sum(br.integer) ELSE sum(ar.integer) END AS integer ORDER BY integer DESC 匹配(a)-[ar:REL]->(b)此查询可能

下面是我用cypher编写的一个工作查询,使用
CASE
表达式和
符号
数学函数来解决明显缺乏数学
min
方法的问题

MATCH (a)-[ar:REL]->(b)<-[br:REL]-(c)
RETURN CASE sign(ar.integer-br.integer) WHEN 1 THEN sum(br.integer) ELSE sum(ar.integer) END AS integer
ORDER BY integer DESC

匹配(a)-[ar:REL]->(b)此查询可能适合您

MATCH (a)-[ar:REL]->(b)<-[br:REL]-(c)
WHERE ID(a) > ID(b)
RETURN b, SUM(
  CASE
    WHEN ar.integer > br.integer THEN br.integer
    ELSE ar.integer END) AS integer
ORDER BY integer DESC
匹配(a)-[ar:REL]->(b)ID(b)
返回b,求和(
案例
当ar.integer>br.integer时,则br.integer
ELSE ar.integer END)作为整数
按整数描述排序

WHERE
子句用于防止重复匹配(否则您的总和将是其正确值的两倍)。它还计算每个
b
(分组键)的
总和,然后按降序对结果进行排序。(如果没有使用分组键进行聚合,则只有一个和,因此排序没有任何意义。)

谢谢。我有一个分组键,还有一些我忘记粘贴的
WHERE
选项。很抱歉无论如何,将
CASE
放在
sum()中
放在
RETURN
子句中,正如您所说的那样,这样做既干净又正确。非常感谢你!