mysql - 运行总计,但使用常量而不是当前行添加前一行
问题描述
我有一个如下表,其中包含一些初始值:
日期 | 价值 | 持续的 |
---|---|---|
2020-02-01 | 10 | 0.25 |
2020-03-01 | 0.25 | |
2020-04-01 | 0.50 | |
2020-05-01 | 0.25 | |
2020-06-01 | 0 |
我正在寻找如下输出:
日期 | 新值 | 持续的 |
---|---|---|
2020-02-01 | 10 | 0.25 |
2020-03-01 | 10.25 | 0.25 |
2020-04-01 | 10.50 | 0.50 |
2020-05-01 | 11.0 | 0.25 |
2020-06-01 | 11.25 | 0 |
这就像一个运行总计,但我不想添加前一行值,而是添加另一列中的值。知道如何实现吗?
解决方案
在 MySQL 8+ 上,我们可以使用SUM
:
SELECT
date,
SUM(value) OVER (ORDER BY date) +
SUM(constant) OVER (ORDER BY date
ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS new_value,
constant
FROM yourTable
ORDER BY date;
推荐阅读
- spring-boot - Spring-Kafka:找不到 RecordIntercepter 类
- r - ggplot上的大括号/括号注释?
- gnuradio - GNU Radio 3.7 和 3.8 之间参数显示的差异
- pca - 如何用配对数据绘制 PCA?
- nlp - BERT 预训练损失没有减少
- project - 更改 CLion 中的默认模板
- python - 如何将日期作为图表的限制
- python - Python:将元组列表转换为 JSON 值键对
- python - 我在使用脆皮表格时出错,
- django - ValueError:无法分配“'auth.User'”:“Token.user”