计算SQL中的月份值

时间:2018-11-03 20:05:20

标签: sql

我想按月计算以下数据

输入

D‌ate        platform     Value
0‌9/04/2018     X          2345
0‌9/05/2018     X          2678
0‌9/06/2018     X          2673
1‌0/05/2018     X          2876
1‌0/06/2018     X          2789

输出应为

D‌ate        platform     Value  Prev month Value
0‌9/04/2018     X          2345  Null
0‌9/05/2018     X          2678  Null
0‌9/06/2018     X          2673  Null
1‌0/05/2018     X          2876   2678
1‌0/06/2018     X          2789   2673  

1 个答案:

答案 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日之前一个月是什么?