ソースコード
-- 売上テーブル(SALES)より、2024年3月1日から28日までの4週間分のデータを集計し、売上件数と売上金額合計(SALES_AMT)の一日当たりの平均値を曜日別に表示しなさい。

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

-- 下記の項目を曜日ごとに集計して表示すること。(エイリアスを使用し→の項目名とする)

-- '日'からスタートして'金'、'土'までを表示 → WEEK
-- 売上データの件数の1日平均件数を曜日別に集計(小数点以下は四捨五入) → AVG_CNT
-- 売上金額合計の1日平均金額を曜日別に集計(小数点以下は四捨五入) → AVG_AMT
-- ※金額は3桁ごとにカンマを入れ、最後に'円'を付けること。
-- ただし、使用されるデータの売上金額合計の値は最大9桁であることが保証される。
-- (printf関数の拡張機能は利用できないので注意すること。)
-- なお、同じ曜日の売上が1件もない場合は、その曜日は件数、金額とも0として表示すること。

-- 表示順

-- 曜日順('日'~'土')
WITH tmp AS
(
    SELECT
        CASE cast(strftime('%w', SALES_DATE) AS integer)
            WHEN 0 then '日'
            WHEN 1 then '月'
            WHEN 2 then '火'
            WHEN 3 then '水'
            WHEN 4 then '木'
            WHEN 5 then '金'
        ELSE '土' END AS WEEK
        , SALES_DATE
        , COUNT(*) AS cnt
        , SUM(SALES_AMT) AS sales_amt
    FROM SALES
    GROUP BY 1, 2
)
SELECT WEEK, ROUND(AVG(cnt)) AS AVG_CNT, printf("%,d円", ROUND(AVG(sales_amt))) AS AVG_AMT
FROM tmp
WHERE SALES_DATE BETWEEN '2024-03-01' AND '2024-03-28'
GROUP BY WEEK
ORDER BY strftime('%w', SALES_DATE)
;
提出情報
提出日時2024/06/06 21:55:26
コンテスト第12回 SQLコンテスト
問題曜日別売上分析
受験者kznovo
状態 (詳細)WA
(Wrong Answer: 誤答)
メモリ使用量84 MB
メッセージ
テストケース(通過数/総数)
0/2
状態
メモリ使用量
データパターン1
WA
83 MB
データパターン2
WA
84 MB