0

我有一个 SQL 查询,它查看一些替代品的价格(由一些供应商提供),问题是我只需要那些以最低价格给我替代品的供应商。(它们可以是 1、2 或更多)

我有这个查询,然后我通过代码解析它,但是还有其他方法可以只用 SQL 来做我想要的吗?

select * from tprovider_treplacement where replacement_id = ? order by price asc

非常感谢☺</p>

4

1 回答 1

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
于 2013-06-22T00:25:04.200 回答