ソースコード
--各商品の売上金額、その累積
WITH CULC_ITEM AS (
    SELECT
        SALES_DTL.ITEM_CODE AS CODE,
        SUM(SALES_DTL.UNITPRICE * SALES_DTL.SALES_QTY) AS SAL_AMT,
        SUM(SUM(SALES_DTL.UNITPRICE * SALES_DTL.SALES_QTY)) OVER (ORDER BY SUM(SALES_DTL.UNITPRICE * SALES_DTL.SALES_QTY) DESC) AS CML_AMT
    FROM
        SALES_DTL
    INNER JOIN
        SALES ON SALES.SALES_NO == SALES_DTL.SALES_NO
    WHERE
        SALES.SALES_DATE BETWEEN '2023-06-01' AND '2023-06-31'
    GROUP BY
        SALES_DTL.ITEM_CODE
),
--合計売上金額の計算
TOTAL_SALES AS (
    SELECT
        SUM(SALES_AMT) AS TOTAL
    FROM
        SALES
    WHERE 
        SALES_DATE BETWEEN '2023-06-01' AND '2023-06-31'
)
-- 売上構成比、類型構成比、RANKの計算
SELECT
    CODE,
    ITEM_NAME AS NAME,
    SAL_AMT,
    CML_AMT,
    ROUND((100.0 * SAL_AMT / TS.TOTAL), 1) || '%' AS SAL_COMP,
	ROUND((100.0 * CML_AMT / TS.TOTAL), 1) || '%' AS TTL_COMP,
	CASE
        WHEN ROUND((100.0 * CML_AMT / TS.TOTAL), 1) <= 40 THEN 'A'
        WHEN ROUND((100.0 * CML_AMT / TS.TOTAL), 1) <= 80 THEN 'B'
        ELSE 'C'
	    END AS 'RANK'
FROM
    CULC_ITEM
CROSS JOIN
    TOTAL_SALES AS TS
INNER JOIN 
    ITEM ON ITEM.ITEM_CODE == CODE
ORDER BY
    SAL_AMT DESC,
    CODE DESC
提出情報
提出日時2024/11/12 14:53:22
コンテスト第7回 SQLコンテスト
問題ABC分析
受験者wanku
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量93 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
90 MB
データパターン2
AC
93 MB
データパターン3
AC
88 MB