私はテーブルを持っています
CREATE TABLE dollars (
price decimal,
amount decimal
);
各レコードには、価格 (1,23 USD) と金額 (0.2) があります。金額が 5 以上に等しくなるまでレコードを選択する方法。
例えば:
- 価格: 4、数量: 2.5
- 価格: 2 、金額: 1.5
- 価格: 5、数量: 3
合計 3 項目で合計金額 7。
私はテーブルを持っています
CREATE TABLE dollars (
price decimal,
amount decimal
);
各レコードには、価格 (1,23 USD) と金額 (0.2) があります。金額が 5 以上に等しくなるまでレコードを選択する方法。
例えば:
合計 3 項目で合計金額 7。
「価格」列に一意のキーはありますか?
次のようなことを試してください:
SELECT
dol.id,
dol.price,
dol.amount,
(SELECT sum(amount) FROM public.dollars dol2 WHERE dol2.price <= dol.price) AS sum_amount
FROM
public.dollars dol
WHERE
(SELECT floor(sum(amount)) FROM public.dollars dol2 WHERE dol2.price <= dol.price) <= 5
ORDER BY price ASC;
もちろん、価格ではなく ID の低いレコードを選択したい場合は、"order by" 条件を変更できます。
次のようなものではなく、WHERE条件が必要だと思います
SELECT * FROM dollars
WHERE amount < 5