SQL 和 Django 的新手,如果 B 列(字串)中的值不同,我正在嘗試創建一個查詢來累積 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
uj5u.com熱心網友回復:
如果你想要一個查詢,你可以使用自連接和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://www.uj5u.com/shujuku/395935.html
標籤:sql 姜戈 sqlite django-views 窗函数
