我一直在尝试编写mysql
查询。要求是计算white
和red
项目的数量,我可以以总价$ 20的价格购买这些项目。这是我尝试的查询:
SELECT colour, purchasePrice
FROM `product`
它返回此结果link。
但是,我想计算在$ 20美元的价格中有多少white
和red
物品。例如,假设我的预算为20美元,而每个项目的成本为2.00美元。因此,我知道我只能购买其中的10个。
我希望这很容易理解。
答案 0 :(得分:1)
对于MySQL 8.0及更高版本,有一些Window函数可以为允许的颜色创建累积价格:
select count(*) -- counts the number of items
from
(
select sum(p1.purchasePrice) over (order by p1.purchasePrice asc) as c_price -- Our cumulative price
from product p1
where colour in ('white', 'red') -- limit the colours
) x2
where x2.c_price <= 20 -- where the cumulative is less than the budget
编辑: 看来您正在寻找可以购买的每种商品的数量,而不是列表中的数量:
select colour, purchasePrice,
floor(20/purchasePrice) as qty_for_20 -- floor rounds the number down
from products
where colour in ('white', 'red')