【发布时间】:2017-05-30 11:43:52
【问题描述】:
我使用的是 Oracle 12.1.0.2.0 我想要当前组(分区)的平均值差异 - 前一组(分区)的平均值 我获取当前组平均值的代码是
with rws as (
select rownum x, mod(rownum, 2) y from dual connect by level <= 10
), avgs as (
select x, y, avg(x) over (partition by y) mean from rws
)
select x, y, mean
from avgs;
现在我想要类似的东西:
X Y MEAN PREV_MEAN MEAN_DIFF 4 0 6 8 0 6 2 0 6 6 0 6 10 0 6 9 1 5 6 -1 7 1 5 3 1 5 1 1 5 5 1 5 2 2 3 5 -3 3 2 3 5 2 3 1 2 3 4 2 3AVG(此分区组)- Avg(前一个分区组) 在这种情况下,我需要 ( 5 - 6 ) 在 GROUP_MEAN_DIFFERENCE 列中进行计算。
另外,我如何才能始终获得第一组的平均差异。 在上面的例子中,我需要 (5 - 6) 和 (3 - 6)
你能帮忙吗?
【问题讨论】:
-
什么是“前一个分区组”?请提供样本数据和期望的结果。
-
。 .您的示例数据不使用您的 sn-p 中的列。目前尚不清楚您的代码和数据之间的关系是什么。
标签: sql oracle analytic-functions