首页 > 解决方案 > Bigquery - 如何计算两个连续行的总和

问题描述

例如,我怎样才能得到两行的总和如果我总共有 5 行,我应该得到 3 行的结果。

下面是我的表:

2020-08-01 1
2020-08-02 3
2020-08-03 4
2020-08-04 2
2020-08-05 4

我想实现这个:

4
6
4
August 1 and 2 = 4
August 3 and 4 = 6
August 5 = 4

标签: google-bigquery

解决方案


你可以ROW_NUMBER在这里使用:

WITH cte AS (
    SELECT dt, val, ROW_NUMBER() OVER (ORDER BY dt) rn
    FROM yourTable
)

SELECT SUM(val)
FROM cte
GROUP BY FLOOR((rn - 1) / 2)
GROUP BY MIN(dt);

这是一个演示链接,显示在 SQL Server 中,但其逻辑也应该适用于 BigQuery:

演示


推荐阅读