コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
WITH RECURSIVE
Months AS (
SELECT 1 AS Month UNION ALL SELECT Month + 1 FROM Months WHERE Month < 12
),
MonthlySales AS (
SELECT
strftime('%Y-%m', SALES_DATE) AS YEAR_MONTH,
SUM(SALES_AMT) AS MONTH_AMT
FROM SALES
WHERE UPDATED_NO IS NULL AND strftime('%Y', SALES_DATE) in ('2022', '2023')
GROUP BY YEAR_MONTH
),
CumulativeSales AS (
SELECT
A.YEAR_MONTH,
A.MONTH_AMT,
(SELECT SUM(B.MONTH_AMT) FROM MonthlySales B WHERE B.YEAR_MONTH <= A.YEAR_MONTH and YEAR_MONTH like '%2023%') AS CUML_AMT
FROM MonthlySales A
),
MovingYearTotal AS (
SELECT
A.YEAR_MONTH,
A.MONTH_AMT,
A.CUML_AMT,
(SELECT SUM(B.MONTH_AMT)
FROM MonthlySales B
WHERE B.YEAR_MONTH BETWEEN strftime('%Y-%m', A.YEAR_MONTH || '-01', '-11 month') AND A.YEAR_MONTH) AS YEAR_MOVE_AMT
FROM CumulativeSales A
)
SELECT
C.YEAR_MONTH,
COALESCE(C.MONTH_AMT, 0) AS MONTH_AMT,
COALESCE(C.CUML_AMT, 0) AS CUML_AMT,
COALESCE(C.YEAR_MOVE_AMT, 0) AS YEAR_MOVE_AMT
FROM Months
LEFT JOIN (
SELECT * FROM MovingYearTotal
) C ON C.YEAR_MONTH = '2023-' || (CASE WHEN Months.Month < 10 THEN '0' ELSE '' END || Months.Month)
ORDER BY C.YEAR_MONTH;
提出情報
提出日時 | 2024/02/18 05:44:52 |
コンテスト | 第11回 SQLコンテスト |
問題 | Zチャート |
受験者 | hiraku |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 85 MB |
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
85 MB
データパターン2
AC
85 MB