我试图获得SQL上特定报价的最低价格。我尝试了以下错误的结果:
SELECT * FROM price WHERE price =(SELECT MIN(price)as price FROM price WHERE id_quote = 36
SELECT id_provider,MIN(price)as price FROM price WHERE id_quote = 36
据我所知,如果我在该表中的价格相同,我会在第一个查询中获得多个结果,而不管报价是多少。但我不知道为什么第二个没有给我正确的结果。
我只需要调用id_provider及其特定报价(无组别)的价格。
有任何帮助吗?
答案 0 :(得分:2)
我认为你只需要一个相关的子查询:
className
请注意,“quote”条件已移至外部查询。
答案 1 :(得分:1)
我喜欢使用RANK()来解决这类问题:
SELECT id_quote, id_provider, price
FROM
(
SELECT id_quote id_provider, price,
RANK() OVER(PARTITION BY id_quote ORDER BY price ASC) AS rnk
FROM price
) sub
WHERE rnk = 1
答案 2 :(得分:0)
You can do it this way if you want:
SELECT TOP 1 id_provider, price FROM price WHERE id_quote=36 ORDER BY price ASC