SQL where函数与Over Partition一起使用

时间:2019-02-27 13:56:29

标签: sql window-functions

我正在计算一系列数字,所计算的列之一是基于“ DTstamp”的“ Accountlink”的加权平均值计算。 问题是我需要最终结果(每个帐户链接)显示在新列中-每个帐户链接的每个帐户链接的最终结果-用于新的计算-如下例所示:

Accountlink      WA_Calc         WA_Calc_Final
1                 20.00            30.00
1                 40.00            30.00
1                 30.00            30.00 
2                 15.00            20.00
2                 35.00            20.00
2                 28.00            20.00  

图像上的是我正在编译的脚本的一部分。

enter image description here

但是,我只是遇到错误。

任何帮助和/或指导将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要一列来指定顺序。 SQL表表示无序集,因此没有“最后一行”,除非有列指定。

让我假设你有一个。我将其称为?

然后您可以使用first_value()

select t.*,
       first_value(wa_calc) over (partition by id order by ? desc) as wa_calc_final
from t;