1

現在、サイファーを少し試しています。プロパティ「価格」(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回実行されます。より良いアイデアはありますか?

4

1 に答える 1