ソースコード
SELECT A.MONTHLY AS YM
      ,IFNULL((SELECT SUM(X.NEW_MRR) + SUM(X.EXPANSION_MRR) - SUM(X.DOWNGRADE_MRR) - SUM(X.CHURN_MRR) AS MRR
        FROM MRR_DATA X
        WHERE X.MONTHLY < A.MONTHLY), 0) AS MRR
FROM MRR_DATA A
ORDER BY A.MONTHLY



/*
新規MRR(NEW_MRR):新規顧客から新たに得られたMRR。
拡大MRR(EXPANSION_MRR):既存顧客がプラン等をアップグレードしたことにより追加で得られたMRR。
減少MRR(DOWNGRADE_MRR):既存顧客がプラン等を下位のものに下げたことにより失われたMRR。
解約MRR(CHURN_MRR):既存顧客が解約したことにより失われたMRR。
MRRデータテーブル(MRR_DATA)に各月について上記4つの項目がデータとして与えられるので、「年月が最も古いレコード」から
「年月が最も新しいレコードの翌月」までの期間について、各月のMRRを以下の式によって求め、出力せよ。
初期値や日時の扱いはサンプルデータを参考にすること。また、前月のデータが存在しない場合は、すべての項目とMRRはゼロとする。

MRR = 前月のMRR + 前月のNEW_MRR + 前月のEXPANSION_MRR - 前月のDOWNGRADE_MRR - 前月のCHURN_MRR

表示項目

MONTHLY → YM
算出したMRR → MRR
*/
提出情報
提出日時2023/02/19 20:12:48
コンテスト第5回 SQLコンテスト
問題MRRの集計
受験者tayutayu2561
状態 (詳細)WA
(Wrong Answer: 誤答)
メモリ使用量88 MB
メッセージ
テストケース(通過数/総数)
0/3
状態
メモリ使用量
データパターン1
WA
88 MB
データパターン2
WA
88 MB
データパターン3
WA
78 MB