Follwing - это рабочий запрос, который я написал в cypher, используя выражение CASE
в сочетании с математической функцией sign
, чтобы обойти очевидный недостаток математического метода min
.математический макс/мин в neo4j cypher
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
мне нужно сравнить два числа и взять самый низкий один (то же самое можно было бы сделать для самого высокого), а затем просуммировать все самые низкие результаты. Это общие функции math.min или math.max, а не минимальные или максимальные статистические агрегации.
Есть ли лучший способ сделать это? Я что-то упускаю?
Спасибо. У меня был групповой ключ и некоторые опции «WHERE», которые я забыл вставить. Сожалею. В любом случае, «CASE» внутри 'sum()' в разделе «RETURN» является более чистым и правильным, как вы сказали. Большое спасибо! –