根据以前的记录,停止求和字段
Based on previous records, stop sum fields
我有一个 table 这样的:
|id | date | point |
+---+------------+-------+
| 6 | 2022/01/06 | 9 |
| 5 | 2022/01/05 | 7 |
| 4 | 2022/01/04 | 1 |
| 3 | 2022/01/03 | 4 |
| 2 | 2022/01/02 | 6 |
| 1 | 2022/01/01 | 1 |
我的目标是从现在到该点大于等于 1 的日期获得 sum
的 point
秒,并停止该日期之前的字段求和。
在上面的示例中(按日期排序),答案是 sum
点日期(2022/01/06
)到日期 2022/01/04
并等于 9 + 7 + 1 = 17
。因为日期 2022/01/03
的点值等于 4,因此不在 sum
.
中计算
我阅读了有关 CTE and Window Functoin 的内容,但是我无法正确实施它们。
- 查找点值为 1 的所需日期之前(包括)的第一行。
- 总结那个和比它更新的所有东西直到(包括)期望的日期。
select sum(point)
from points
where date between (
select "date"
from points
where point = 1 and date <= '2022/01/06'
order by "date" desc
limit 1
) and '2022/01/06';
我有一个 table 这样的:
|id | date | point |
+---+------------+-------+
| 6 | 2022/01/06 | 9 |
| 5 | 2022/01/05 | 7 |
| 4 | 2022/01/04 | 1 |
| 3 | 2022/01/03 | 4 |
| 2 | 2022/01/02 | 6 |
| 1 | 2022/01/01 | 1 |
我的目标是从现在到该点大于等于 1 的日期获得 sum
的 point
秒,并停止该日期之前的字段求和。
在上面的示例中(按日期排序),答案是 sum
点日期(2022/01/06
)到日期 2022/01/04
并等于 9 + 7 + 1 = 17
。因为日期 2022/01/03
的点值等于 4,因此不在 sum
.
我阅读了有关 CTE and Window Functoin 的内容,但是我无法正确实施它们。
- 查找点值为 1 的所需日期之前(包括)的第一行。
- 总结那个和比它更新的所有东西直到(包括)期望的日期。
select sum(point)
from points
where date between (
select "date"
from points
where point = 1 and date <= '2022/01/06'
order by "date" desc
limit 1
) and '2022/01/06';