好的,我有下面的MySQL语句...
目标是根据"id“代码对所有”库存“产品进行分组,并显示具有”最低价格“的产品。
我曾认为仅按id分组并在ORDER by子句中添加MIN(价格)就可以完成这项工作,但显然不是这样。
SELECT *
FROM (`products`)
WHERE `in_stock` = 'yes'
GROUP BY `id`
ORDER BY brand, line, product, size, unit, MIN(price)
LIMIT 25有人能帮帮忙吗?
示例数据:
id brand line product size unit price url
123 Adidas Deep Energy EDT 50 ml 10.00 Link1
123 Adidas Deep Energy EDT 50 ml 8.75 Link2
123 Adidas Deep Energy EDT 50 ml 9.99 Link3
124 Adidas Deep Energy EDT 100 ml 15.00 Link4因此,实际上,我试图组合的查询将返回上面示例数据的第2行和第4行( "123“和”124“的最低价位行)
发布于 2014-01-27 04:29:26
最低价格计算如下:
SELECT id, MIN(price)
FROM products
WHERE in_stock = 'yes'
GROUP BY id ; 要获得具有最低价格的行,您需要将其重新加入:
select p.*
from products p join
(SELECT id, MIN(price) as minprice
FROM products
WHERE in_stock = 'yes'
GROUP BY id
) pmin
on p.id = pmin.id and p.price = pmin.minprice;https://stackoverflow.com/questions/21368377
复制相似问题