2017-09-16 81 views
1

我有一個名爲sales的表,它有2列:Sales_IdPrice。我需要從表格中檢索最便宜的價格。最便宜的價格是100.但是,它只顯示一個Sales_ID,而我希望它以最便宜的價格返回所有3個條目。如何退還最便宜的價格?

Create table sales 
(
    Sales_Id int Primary Key, 
    Price number(4) 
); 
insert into sales values(1,100); 
insert into sales values(2,400); 
insert into sales values(3,100); 
insert into sales values(4,100); 

回答

3
select sales_id 
from sales 
where price = (select min(price) from sales) 
2

一種方法使用rank()/dense_rank()

select s.* 
from (select s.*, rank() over (order by price) as seqnum 
     from sales s 
    ) s 
where seqnum = 1; 
0
select * from sales 
order by price 
fetch first row with ties; 

(需要Oracle 12.1或更高。)