1

我有一张桌子

CREATE TABLE dollars (
  price decimal,
  amount decimal
);

每条记录都有价格(1,23 美元)和金额(0.2)。我如何选择记录,直到数量不等于 5 或​​更多。

例如:

  1. 价格:4,数量:2.5
  2. 价格:2,数量:1.5
  3. 价格:5,数量:3

总计 3 项,总金额 7。

4

2 回答 2

1

您在“价格”列上有唯一键吗?

尝试这样的事情:

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”条件。

于 2013-06-26T14:40:28.117 回答
0

我相信需要一个 WHERE 条件而不是一段时间

   SELECT * FROM dollars 
   WHERE amount < 5
于 2013-06-26T14:32:02.787 回答