我有一张桌子
CREATE TABLE dollars (
price decimal,
amount decimal
);
每条记录都有价格(1,23 美元)和金额(0.2)。我如何选择记录,直到数量不等于 5 或更多。
例如:
- 价格:4,数量:2.5
- 价格:2,数量:1.5
- 价格:5,数量:3
总计 3 项,总金额 7。
我有一张桌子
CREATE TABLE dollars (
price decimal,
amount decimal
);
每条记录都有价格(1,23 美元)和金额(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