2016-02-28 93 views
0

我有两个表。排名函数总和

abc(CID(pk), cname,) 
order(order_id(pk), CID(fk), number_of_rentals) 

我想根据他们租用的电影数量来确定前10名客户。

select 
    orders.cid,orders.no_rentals, abc.name, 
    rank() over (order by no_rentals desc) "rank" 
from abc 
inner join orders on orders.CID = abc.CID; 

我用这个查询,但它不是通用的。如何使用此查询在number_of_rentals上使用sum函数?

+0

的可能的复制[甲骨文SELECT TOP 10记录](http://stackoverflow.com/questions/2498035/oracle-select-top-10-records) – MT0

回答

0
Select Top 10 
     orders.cid 
     , abc.name 
     , SUM(orders.no_rentals) TotalRentals 
     , rank() over (order by SUM(orders.no_rentals) desc) [rank] 
from abc 
inner join orders on orders.CID = abc.CID 
Group By orders.cid, abc.name 
Order By TotalRentals DESC 
+0

SELECT CID,总和(no_rentals)作为总和 FROM订单 group by cid,no_rentals order by no_rentals desc;这个查询也给出了结果,但我如何获取前10行使用此查询..我正在使用oracle sql developer –

+0

您的查询给出错误从关键字找不到预期的地方 –