0

我需要比较分组数据以查找计算值的变化。我当前 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 之间的差异。

4

2 回答 2

0

您可以使用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 
于 2018-10-04T17:42:46.537 回答
0
        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' 
于 2018-10-04T20:18:29.107 回答