首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL在定义的时间范围内将累加值分解为单个值

您可以使用 SQL 中的窗口函数(window function)来实现这个功能

代码语言:javascript
复制
WITH data_with_cumulative AS (
  SELECT
    t.date,
    t.value,
    SUM(t.value) OVER (ORDER BY t.date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_value
  FROM
    your_table t
  WHERE
    t.date >= 'start_date' AND t.date <= 'end_date'
)
SELECT
  date,
  value
FROM
  data_with_cumulative
WHERE
  cumulative_value > 0
ORDER BY
  date;

在这个示例中,首先使用 WITH 子句创建一个名为 data_with_cumulative 的临时表,包含原始表中的数据以及一个名为 cumulative_value 的字段,该字段使用 SUM() 窗口函数计算累计值。ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 表示窗口范围从最早的行到当前行。

接下来,从临时表中选择 datevalue 字段,其中 cumulative_value 大于 0(或您感兴趣的任何其他条件)。最后,使用 ORDER BY 子句按日期对结果进行排序。

请注意,您需要将表名和日期范围替换为实际的表名和日期范围。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券