如何使用SQL在postgresql中记录最后一条记录中的数据

问题描述:

我有这样的数据收集。如何使用SQL在postgresql中记录最后一条记录中的数据

build failures 
001  1 
002  3 
003  5 

故障列意味着失败存在该生成。

有没有什么方法可以在SQL中输出数据(在当前构建之前总结所有失败)?

build failures 
001  1 
002  4 
003  9 

你可以使用窗口SUM

SELECT build, SUM(failures) OVER(ORDER BY build) AS failures 
FROM your_tab 
ORDER BY build; 

一般,而@ lad2025一般是正确的我要补充的是运行总计您通常不希望明确指定的顺序。通常情况下,您将通过使用当前行的内置窗口来获得更好,更易维护的查询。

SELECT build, failures, 
     sum(failures) OVER (ROWS UNBOUNDED PRECEDING) as failures_to_date 
    FROM your_tab 
ORDER BY build; 

这让你重新排序的能力您的查询,同时保持基于任何命令你决定运行的整个存在(我也不会感到惊讶,如果最佳化也是可能与此,这意味着它可能会表现得更好)。