我想按月计算以下数据
输入
Date platform Value
09/04/2018 X 2345
09/05/2018 X 2678
09/06/2018 X 2673
10/05/2018 X 2876
10/06/2018 X 2789
输出应为
Date platform Value Prev month Value
09/04/2018 X 2345 Null
09/05/2018 X 2678 Null
09/06/2018 X 2673 Null
10/05/2018 X 2876 2678
10/06/2018 X 2789 2673
答案 0 :(得分:1)
您似乎想要left join
:
select t.*, tprev.value
from t left join
t tprev
on tprev.platform = t.platform and
tprev.date = t.date - interval '1 month';
请注意,这是ANSI / ISO标准语法。在SQL Server中,最后一个条件是:
tprev.date = dateadd(month, -1, t.date);
还请注意,“上个月”的定义不明确。 3月31日之前一个月是什么?