コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
-- 売上テーブル(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