gpt4 book ai didi

mysql - Sql,按组获取所有可能的最小值

转载 作者:行者123 更新时间:2023-11-29 07:48:22 24 4
gpt4 key购买 nike

表格如下:

------------------------------------------------------------------------
ProductId ProductType SupplierId Price Date
10001 Toy1 3 20 2011-10-20
10001 Toy1 5 23 2011-11-29
10002 Book1 3 20 2010-12-29
10004 Book2 4 12 2013-2-11
10004 Book2 3 25 2014-1-1
10004 Book2 5 23 2012-9-18

我需要一个查询来获取每个供应商的最低价格产品,因此在上表上运行查询后的结果将是:

----------------------------------
SupplierId ProductType
3 Toy1
3 Book1
4 Book2
5 Toy1
5 Book2

谢谢。

最佳答案

您可以使用 where 子句中的子查询或聚合和联接来执行此操作:

select t.*
from table t
where t.price = (select min(price)
from table t2
where t2.supplierid = t.supplierid
);

编辑:

带有聚合的版本是:

select t.*
from table t join
(select supplierId, min(price) as minprice
from table t
group by supplierId
) ts
on ts.supplierId = t.supplierId and ts.minprice = t.price;

在某些情况下,这可能比以前的版本表现更好。如果性能在较大的表上是一个问题,那么在您的环境中测试这两个表以及正确的索引非常重要。

关于mysql - Sql,按组获取所有可能的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27137943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com