2017-09-16 86 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或更高。)