この集計された値が望ましいしきい値を満たすまで、列の値を集約しながら順序付けされた表から行を取り出すクエリを作成したいと思います。PostgreSQL:1つの列の合計削減がしきい値を超えるまで行を選択
しきい値を超える違反行をクエリ結果に含める必要があるという追加基準があります。
私は、次のクエリを作成するに私をリードし、PostgreSQLの中で行われ、他のソリューションを探しています:
SELECT * FROM (
SELECT *, SUM(amount) OVER (ORDER BY amount DESC) AS running_amount
FROM public.orders WHERE price = 0.09) AS t
WHERE t.running_amount <= 15;
このクエリでの問題は、しかし、それはの凝集をスキップPostgreSQLのウィンドウのクエリを、表していることです指定された行の列の値が一意でない場合は、すべての行に対して列の値を返します。
ウィンドウクエリは残念ながら、別個の値の列の考慮を考慮していません。
このようなアグリゲーションクエリをどこから始めるべきかはわかりませんが、これを可能にするために私が聞いたいくつかの選択肢は、PostgreSQL関数を作成することです。
誰かがアイデアやノウハウを持っているなら、私は非常に感謝します。
どうもありがとう!これは、ウィンドウを動作させるための1つの問題を解決しました。しきい値を超えて違反行を取得するのはどうですか? – Dranithix
更新された回答を参照してください。 – klin
完璧に動作します!ありがとうhahah :)。 – Dranithix