从SQL Query中只取几个值

时间:2013-06-22 00:21:31

标签: sql

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

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

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

非常感谢☺

1 个答案:

答案 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