現在、サイファーを少し試しています。プロパティ「価格」(merchant-[:sells{price:10}]->component)を持つrealtionship「sells」によって商人に接続されているコンポーネントの簡単なセットアップがあります。最低価格を計算するサイファークエリを作成しました、同じ販売者から商品を購入した場合。
MATCH sup-[s:sells]->component
WITH SUM(s.price) AS total, sup
RETURN sup, total
ORDER BY total ASC
これが機能している間、2 つ以上のサプライヤーが同点の場合、最も安い価格を見つけるのに問題があります。次のようなものを取得したい
_________________________
| price | supplier |
-------------------------
| 60 | conrad |
| | amazon |
-------------------------
ここで私のセットアップを表示できます: http://console.neo4j.org/?id=wpz165
編集:わかりました、きれいではありませんが、方法を見つけました。
MATCH sup-[s:sells]->component
WITH SUM(s.price) AS minprice, sup
ORDER BY minprice
LIMIT 1
MATCH sup2-[s2:sells]->component2
WITH SUM(s2.price) AS total2, sup2, minprice
WHERE total2 = minprice
RETURN minprice, sup2
これはどのように作動しますか?最初の部分は最低価格を見つけます (最初の行を注文して返すだけです)。2番目の部分では、クエリ全体を再度実行し、最低価格を持たないアイテムを除外します...したがって、クエリ全体が2回実行されます。より良いアイデアはありますか?