我需要比较分组数据以查找计算值的变化。我当前 SQL 的输出看起来像这样......
Grp_ID_1 / Metric / State / Value
A Metric1 OH 50
B Metric1 OH 65
A Metric1 CA 20
B Metric1 CA 35
在上面的示例中,我需要计算 A-Metric1-OH 值为 50 与 B-metric1-OH 值为 65 之间的差异。
我需要比较分组数据以查找计算值的变化。我当前 SQL 的输出看起来像这样......
Grp_ID_1 / Metric / State / Value
A Metric1 OH 50
B Metric1 OH 65
A Metric1 CA 20
B Metric1 CA 35
在上面的示例中,我需要计算 A-Metric1-OH 值为 50 与 B-metric1-OH 值为 65 之间的差异。
您可以使用LEAD计算行之间的差异。
SELECT LEAD(State, 1,0) OVER (ORDER BY Grp_ID_1 ) AS NextState ,
State - LEAD(State, 1,0) OVER (ORDER BY Grp_ID_1 ) AS StateDif
FROM yourTable
SELECT grp_ID_1, metric, state, value,
(SELECT MAX(value)
FROM tablename
) - value AS Difference
FROM tablename group by state, grp_ID_1, metric, value
having state = 'OH'