我有一个SQL查询,它查看了一些替代品的价格(由一些提供商提供),问题是我只需要那些给我替换最小价格的供应商。 (它们可以是1,2或更多)
我有这个查询,然后我通过代码来解决它,但还有其他方法可以用SQL做我想要的吗?
select * from tprovider_treplacement where replacement_id = ? order by price asc
非常感谢☺
答案 0 :(得分:1)
你想要这样的东西吗?
select *
from tprovider_treplacement
where replacement_id = ? and
price = (select min(price)
from tprovider_treplacement
replacement_id = ?
)
这是标准的SQL。许多数据库也使用窗口函数支持此方法:
select *
from (select pr.*,
min(price) over (partition by replacement_id) as minprice
from tprovider_treplacement pr
where replacement_id = ?
) t
where price = minprice