我创建了结构和样本数据here。我不知道如何计算随时间推移的变化。计算随时间变化的百分比
我想要的结果集为:
a | % growth
abc | 4.16
def | 0.83
hig | -0.2
的百分比变化为(最后一个值 - 第一个值)/天:
a | % growth
abc | (30-5)/6
def | (6-1)/6
hig | (4-5)/5
我想:
SELECT a.*,
b.val,
c.val
FROM (SELECT a,
Min(dt) AS lowerDt,
Max(dt) AS upperDt
FROM tt
GROUP BY a) a
LEFT JOIN tt b
ON b.dt = a.lowerdt
AND b.a = a.a
LEFT JOIN tt c
ON c.dt = a.upperdt
AND b.a = a.a
如果可能的话,我想避免CTE。
为什么你要避免使用CTE?在许多情况下,它们使代码更容易阅读。 – MatBailie
也许为了可能的移植到MySQL? – ely
@MatBailie到其他DBMS(不是MySQL)的可移植性 – user3242205