请问这样如何排序

请教这样怎么排序高手帮忙看段SQL,取前20名问题这个报表是“损失率较小的前20名”,另外,所取的表的数据量现

请教这样怎么排序
高手帮忙看段SQL,取前20名问题


这个报表是“损失率较小的前20名”,另外,所取的表的数据量现在大概有10W行

报表的结构是这样的
id 本月供电量 本月售电量 上月供电量 上月售电量

表结构是这样的
  id
  gdl 供电量
  sdl 售电量
  rq 日期(格式为200808)

我写到如下就不知道该怎么往下写了,假设统计的日期为200808
select 
id,
sum(decode(rq,200808,gdl,0)) 本月供,
sum(decode(rq,200808,sdl,0)) 本月售,
sum(decode(rq,200807,gdl,0)) 上月供, --这里图简单直接写出了200807,实际是用了add_months
sum(decode(rq,200807,sdl,0)) 上月售
from table
group by id
下面不知道怎么排序了,损失率=(供-售)/供, 按本月的排序。取前20名

[解决办法]

select *

SQL code
from(select id, sum(decode(rq,200808,gdl,0)) 本月供, sum(decode(rq,200808,sdl,0)) 本月售, sum(decode(rq,200807,gdl,0)) 上月供,    sum(decode(rq,200807,sdl,0)) 上月售,round((sum(decode(rq,200808,gdl,0)) -sum(decode(rq,200808,sdl,0)) )/sum(decode(rq,200808,gdl,0)),4) loss_rate from table group by id order by 6 desc)where rownum<=20