期间总和

Sum over period

我对行总和有一些疑问。我在 Teradata SQL Assistant 中有以下数据集:

id period avg_amt flag
111 1   123.5      1
211 1   143.1      1
311 2   122.1      1
411 3   214.5      1
511 3   124.6      0
611 3   153.2      1

我想根据时间段对标志求和。 我尝试的是以两种不同的方式在这段时间内使用求和函数:

select 
       id, period, avg_amt, flag, sum(flag) over (partition by id order by period)
from dataset

select 
       id, period, avg_amt, flag, sum(flag)
       group by id, period, avg_amt, flag
from dataset

输出没有return我所期望的,即第 1 期总和=3,第 2 期总和 1,第 3 期总和 2。

你能告诉我哪里出了问题吗?谢谢

求简单求和:

select period, sum(flag) total_flag
from dataset
group by period

在 SQL 服务器中,要重新添加其余信息,您可以使用子查询并将其重新加入:

select id, dataset.period, avg_amt, flag, total_flag
from dataset
inner join (
   select period, sum(flag) total_flag
   from dataset
   group by period
) TF on TF.period=dataset.period

我希望这对 teradata-sql-assistant 仍然有用。