首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL按ID分组,MIN排序(价格)

问MySQL按ID分组,MIN排序(价格)
EN

Stack Overflow用户
提问于 2014-01-27 03:52:36
回答 1查看 886关注 0票数 0

好的,我有下面的MySQL语句...

目标是根据"id“代码对所有”库存“产品进行分组,并显示具有”最低价格“的产品。

我曾认为仅按id分组并在ORDER by子句中添加MIN(价格)就可以完成这项工作,但显然不是这样。

代码语言:javascript
复制
SELECT *  
FROM (`products`)  
WHERE `in_stock` = 'yes'  
GROUP BY `id`  
ORDER BY brand, line, product, size, unit, MIN(price)  
LIMIT 25

有人能帮帮忙吗?

示例数据:

代码语言:javascript
复制
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“的最低价位行)

EN

回答 1

Stack Overflow用户

发布于 2014-01-27 04:29:26

最低价格计算如下:

代码语言:javascript
复制
SELECT id, MIN(price)   
FROM products
WHERE in_stock = 'yes'  
GROUP BY id ; 

要获得具有最低价格的行,您需要将其重新加入:

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21368377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档