ソースコード
with tmp as(
select min(MONTHLY) as StaDay,
  date(max(MONTHLY),'+1 months') as EndDay
   from MRR_DATA
),
rec(day) as(
select StaDay as day -- 日付区間の開始
  from tmp
union all
select date(day , '+1 days')
  from rec
 where day < (select EndDay from tmp)) -- 日付区間の終了
select a.day as YM,
case when a.day = min(a.day) over()
     then 0
     else sum(ifnull(b.NEW_MRR,0)
             +ifnull(b.EXPANSION_MRR,0)
             -ifnull(b.DOWNGRADE_MRR,0)
             -ifnull(b.CHURN_MRR,0))
             over(order by a.day rows between unbounded preceding
                                          and 1 preceding) end as MRR
  from rec a
  left join MRR_DATA b
    on a.day = b.MONTHLY
 where day like '%01'
order by YM
提出情報
提出日時2023/04/15 08:28:02
コンテスト第5回 SQLコンテスト
問題MRRの集計
受験者AketiJyuuzou
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量77 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
77 MB
データパターン2
AC
77 MB
データパターン3
AC
75 MB