ソースコード
/*
Zチャートで2023年の1年間の売上推移を確認したい。
そのために、売上データ(SALES)から、Zチャートに必要な「月次売上」「売上累計」「移動年計」の3つの指標を集計しなさい。
売上データの売上区分(SALES_TYPE) = 2 (売上返品)の売上金額合計(SALES_AMT)は、
マイナス値がセットされているので、そのままマイナス値で計算すること。
また、集計対象とするデータは、赤黒伝票番号(UPDATED_NO)の値がNULL値の黒伝のみを対象とすること。

指標の集計方法

月次売上 = 売上金額合計(SALES_AMT)を月別に集計※
売上累計 = 2023年1月から該当月までの月次売上を合計
移動年計 = 該当月の月次売上に過去11カ月の売上累計を合計
※集計対象となる売上データは各月に最低1件以上存在しているものとする。

表示項目は以下とする。(エイリアスを使用し→の項目名とする)

集計した年月(2023-01から2023-12まで表示する) → YEAR_MONTH
集計した月次売上金額 → MONTH_AMT
集計した売上累計金額 → CUML_AMT
集計した移動年計金額 → YEAR_MOVE_AMT
表示順

集計した年月の昇順
*/
--取得データ整理
WITH FIX_SALES AS
(SELECT
STRFTIME('%Y-%m', SALES_DATE) AS YEAR_MONTH,
SUM(SALES_AMT) AS MONTH_AMT,
STRFTIME('%Y', SALES_DATE) AS YEAR
FROM
SALES
WHERE UPDATED_NO IS NULL
GROUP BY YEAR_MONTH)

--まとめ
SELECT
YEAR_MONTH,
MONTH_AMT,
SUM(MONTH_AMT)
OVER(
PARTITION BY YEAR
ORDER BY YEAR_MONTH
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CUML_AMT,
SUM(MONTH_AMT)
OVER(
ORDER BY YEAR_MONTH
ROWS BETWEEN 11 PRECEDING AND CURRENT ROW) AS YEAR_MOVE_AMT

FROM
FIX_SALES
提出情報
提出日時2024/11/12 10:32:03
コンテスト第11回 SQLコンテスト
問題Zチャート
受験者yuta
状態 (詳細)WA
(Wrong Answer: 誤答)
メモリ使用量85 MB
メッセージ
テストケース(通過数/総数)
0/2
状態
メモリ使用量
データパターン1
WA
85 MB
データパターン2
WA
85 MB