在经常做维度分析的报表中,经常会累积统计针对时间维度需要用到Oracle Sum Over Partition这个函数:
SUM
(RAW_QTY) OVER( PARTITION BY ORGANIZATION_ID, ITEM_NUMBER, ITEM_CATEGORY ORDER BY FISCAL_WEEK_NAME) RAW_QTY
其中可以看到sum中是对数据进行的累积加总,而partition by则是需要group by的字段,而order by 就是时间维度的一个累积,注意这个地方的Order By很重要。
另外在实际的需求中可能还会出现,只需要得到最近的一次累积加总值,或者最早的一次,此时可以通过rownum=1来实现。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/206955/viewspace-765548/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/206955/viewspace-765548/