[英]How to query cumulative sum period by month
您可以使用下一個 SQL 構造:
WITH Calendar AS (
-- generate Year, Month table for each Name
SELECT Year, Month, Name
FROM (VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12)) AS Months(Month)
CROSS JOIN (VALUES (2020)) AS years(Year)
CROSS JOIN (SELECT DISTINCT Name FROM Source) AS Names
) SELECT
Calendar.Year,
Calendar.Month,
Calendar.Name,
COALESCE(Source.Value, 0) AS Value,
SUM(COALESCE(Source.Value, 0)) OVER(PARTITION BY Calendar.Name ORDER BY Calendar.Year, Calendar.Month) AS cumulativeSum
FROM Calendar
LEFT JOIN Source ON
Source.Year = Calendar.Year AND
Source.Month = Calendar.Month AND
Source.Name = Calendar.Name ;
查詢使用 CTE 表達式生成日歷表和 window function SUM 按名稱分區計算累積值
我很高興看到這個查詢。
實際上,我正在 mysql 中尋找相同的查詢。
在 mysql 中,查詢不支持。
請問可以在 MYSQL 做嗎?
非常感謝 Pravallik
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.