在SQL中计算月份之间的差异

在SQL中计算月份之间的差异,sql,google-bigquery,pivot,google-data-studio,Sql,Google Bigquery,Pivot,Google Data Studio,我正在使用Big Query和Data Studio为几个月的数据透视和构建查询,如: > Name|Jan|Feb|Mar|... > abc |123|234|676|... > SUM |123|234|676|.. 但我现在需要的是两个月之间的差异: > Name|Jan|Feb |Mar |... > abc |123| 234| 676|... > SUM |123| 234| 676|.. > Diff|0 |+111|+442|..

我正在使用Big Query和Data Studio为几个月的数据透视和构建查询,如:

> Name|Jan|Feb|Mar|...
> abc |123|234|676|...
> SUM |123|234|676|..
但我现在需要的是两个月之间的差异:

> Name|Jan|Feb |Mar |...
> abc |123| 234| 676|...
> SUM |123| 234| 676|..
> Diff|0  |+111|+442|..

如何以最佳和最有效的方式实现这一点?

您似乎需要一个基本的算法:

with t as (
      <your query here>
     )
select name, jan, feb, mar, . . .
from t
union all
select concat(name, '-DIFF'), 0, feb - jan, mar - feb, . . . 
from t;

你能告诉我们这些数字到底在哪里有意义吗?@TimBiegeleisen有时会这么做。我相信diff是通过从当前月份减去前一个月的总和来计算的。abc专栏是做什么的,我不知道。是的,对不起,也许这个例子不是最好的作品。abc更像是一个文本栏。是的,不同月份之间的差异是不同的