我有这样的数据集。
build failures
001 1
002 3
003 5
失败列表示构建时存在失败。
有没有办法在SQL中输出数据(在当前构建之前加上所有失败)?
build failures
001 1
002 4
003 9
答案 0 :(得分:1)
您可以使用窗口SUM
:
SELECT build, SUM(failures) OVER(ORDER BY build) AS failures
FROM your_tab
ORDER BY build;
答案 1 :(得分:1)
一般来说,虽然@ lad2025通常是正确的,但我会补充说,对于运行总计,你通常不想明确指定排序。通常,通过使用当前行的内置窗口,您将获得更好,更可维护的查询。
SELECT build, failures,
sum(failures) OVER (ROWS UNBOUNDED PRECEDING) as failures_to_date
FROM your_tab
ORDER BY build;
这使您能够重新排序查询,同时保持运行总计基于您决定的任何顺序(如果对此进行优化也不会感到惊讶,这意味着它可能表现更好)。