oracle rank() over 求最后一条记录

本文介绍了在资产管理的供需平衡监控业务中,如何利用Oracle的RANK() OVER函数来获取每个充电站的最新分析结果。通过PARTITION BY和ORDER BY子句进行分组和时间倒序排序,取RANK为1的记录即可。同时,文章还对比了RANK()、DENSE_RANK()和ROW_NUMBER()的区别。
摘要由CSDN通过智能技术生成
业务场景:
资产管理中的供需平衡监控。现在又如下“供需分析统计结果”表

[img]http://dl.iteye.com/upload/attachment/593716/0e48bc8e-8c58-3660-926c-52a9399001fd.jpg[/img]
现在需要求每个充电站的最新分析结果。

WITH SUPPLY_TEMP AS
(SELECT A.STAT_ID,
RANK() OVER(PARTITION BY A.SUBS_ID, A.EQUIP_CATEG, A.EQUIP_CODE_ID ORDER BY A.STAT_DATE DESC) RANK1,
B.ORG_NO,
B.ORG_NAME,
C.SUBS_NAME,
A.EQUIP_CATEG,
A.EQUIP_CODE_ID,
A.STOCK_NUM,
A.PLAN_DIST_NUM,
A.DISTING_NUM,
A.MAX_SS,
A.MIN_SS,
A.EST_USE_NUM,
A.EST_SUPPLY_END_DATE
FROM D_SUPPLYDMD_STAT A, O_ORG B, C_SUBS C
WHERE A.ORG_NO = B.ORG_NO
AND A.SUBS_ID = C.SUBS_ID
AND A.STAT_DATE > ADD_MONTHS(SYSDATE, -1)
ORDER BY A.ORG_NO)
SELECT * FROM SUPPLY_TEMP B WHERE B.RANK1 = 1<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值