google-bigquery - 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
解决方案
你可以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:
演示
推荐阅读
- javascript - 使用 AJAX 时,无法拆分字符串并将其视为数组
- css - 如何防止具有相对位置的组件不会出现在带有角度粘性标题的表格上方?
- python-3.x - 击键记录:记录按下和释放
- node.js - 注册后无法重定向到仪表板(秘密页面)
- reactjs - 当我们声明一个 const 并重用变量时
- sql - 用前导零修剪特定字符串
- c# - 如何从模型的 ViewModel 类型的回发中从 DropdownList 中获取价值?
- lua - 我的游戏没有保存我希望它保存的数据
- authentication - 如何在 actix-web 中创建受保护的路由
- typescript - TypeScript 类型限制有时不适用