对于SQL和Django非常陌生,如果B列(string)中的值不同,我将尝试创建一个查询,以累积A列(整数)的值。这一累计应根据日期(C栏)进行。
以下是数据:
Column A Column B Column C
2.0 Rock 2020-08-08
3.0 Paper 2020-09-08
25.0 Rock 2021-09-09
12.0 Rock 2021-10-10
5.0 Paper 2021-11-11根据这些数据,我希望有第三列D,它将表示以下累积值:
Column A Column B Column C Column D
2.0 Rock 2020-08-08 2.0
3.0 Paper 2020-09-08 5.0
25.0 Rock 2021-09-09 28.0
12.0 Rock 2021-10-10 15.0
5.0 Paper 2021-11-11 17.0发布于 2021-12-28 12:00:39
如果需要查询,可以使用自联接和FIRST_VALUE()窗口函数进行查询:
SELECT DISTINCT t1.*,
t1.ColumnA + COALESCE(FIRST_VALUE(t2.ColumnA) OVER (PARTITION BY t1.ColumnC ORDER BY t2.ColumnC DESC), 0) ColumnD
FROM tablename t1 LEFT JOIN tablename t2
ON t2.ColumnC < t1.ColumnC AND t2.ColumnB <> t1.ColumnB
ORDER BY t1.ColumnC;见演示。
https://stackoverflow.com/questions/70506089
复制相似问题