select
rank() over (partition by b.C_EEGRPID,RECORDDATE order by b.EEKWH desc) as rank,
b.METERNO,
b.EEKWH,
b.C_EEGRPID,
b.C_EEGRPNAME,
b.RECORDDATE
from (
select
sum(a.EEKWH) as EEKWH,
d.METERNO,
c.C_EEGRPID,
g.C_EEGRPNAME,
a.RECORDDATE
from
QX_SGMTUSR_DTL a
left join V_USING_TOPO b on a.DISTRICTBCDID=b.DISTRICTBCDID and a.ADDRESSID=b.ADDRESSID and a.CHANNELID=b.CHANNELID
left join T_EECLASSIFICATION c on a.EEID=c.EEID
left join T_EECLASSIFICATIONGRP g on c.C_EEGRPID=g.C_EEGRPID
left join U_APPUSER d on b.METERNO=d.METERNO
where a.RECORDDATE >= 200818
and a.RECORDDATE < 200825
and d.METERNO is not null
and c.C_EEGRPID in (2,4,5)
GROUP BY d.METERNO,a.RECORDDATE,c.C_EEGRPID,g.C_EEGRPNAME
ORDER BY a.RECORDDATE
) b