ソースコード
with temp as (
select  strftime('%w',SALES_DATE) WEEK
,count(*)/count(distinct SALES_DATE) ACG_CNT
,replace(sum(SALES_AMT)/count(distinct SALES_DATE),'.0','') AVG_AMT
  from  SALES
 where  SALES_TYPE <> 2
   and  UPDATED_NO is null
   and  SALES_DATE between '2024-03-01' and '2024-03-28'
 group by strftime('%w',SALES_DATE)
)

select  case 
        when t.WEEK = '0' then '日'
        when t.WEEK is null then '日'
        when t.WEEK = '1' then '月'
        when t.WEEK = '2' then '火'
        when t.WEEK = '3' then '水'
        when t.WEEK = '4' then '木'
        when t.WEEK = '5' then '金'
        when t.WEEK = '6' then '土'
        End WEEK
        ,case 
        when ACG_CNT is null then '0'
        else ACG_CNT
        End ACG_CNT
        ,case 
        when AVG_AMT is null then '0円'
        when  length(AVG_AMT) > 6
     then substr(AVG_AMT,1,length(AVG_AMT)-6) || ',' || substr(AVG_AMT,length(AVG_AMT)-5,3) || ',' || substr(AVG_AMT,length(AVG_AMT)-2,3) || '円'
  when  length(AVG_AMT) > 3
     then substr(AVG_AMT,1,length(AVG_AMT)-3) || ',' || substr(AVG_AMT,length(AVG_AMT)-2,3) || '円'
        else AVG_AMT || '円'
        End AVG_AMT
  from  (
    select  '0' dd union all
    select  '1' union all
    select  '2' union all
    select  '3' union all
    select  '4' union all
    select  '5' union all
    select  '6'
    )c
    left outer join temp t on c.dd = t.WEEK
/*

   */
  /*
  '日'からスタートして'金'、'土'までを表示 → WEEK
売上データの件数の1日平均件数を曜日別に集計(小数点以下は四捨五入) → AVG_CNT
売上金額合計の1日平均金額を曜日別に集計(小数点以下は四捨五入) → AVG_AMT


また、売上区分(SALES_TYPE) = 2 (売上返品)のデータ、および、赤黒伝票番号(UPDATED_NO)の値がNULL値以外(赤伝)のデータは集計対象外とする。

0	日曜日
1	月曜日
2	火曜日
3	水曜日
4	木曜日
5	金曜日
6	土曜日
*/
提出情報
提出日時2024/04/20 00:16:43
コンテスト第12回 SQLコンテスト
問題曜日別売上分析
受験者ksw_201815
状態 (詳細)WA
(Wrong Answer: 誤答)
メモリ使用量86 MB
メッセージ
テストケース(通過数/総数)
0/2
状態
メモリ使用量
データパターン1
WA
85 MB
データパターン2
WA
86 MB