ソースコード
WITH t1 AS (SELECT ITEM_CODE, SUM(UNITPRICE * SALES_QTY) AS amt
            FROM sales
                 INNER JOIN SALES_DTL de ON de.sales_no = sales.SALES_NO
            WHERE SALES_DATE BETWEEN '2023-06-01' AND '2023-06-30'
            GROUP BY ITEM_CODE)
   , t2 AS (SELECT t1.ITEM_CODE
                 , SUM(t2.amt) v0
                 , ROUND(CAST(MAX(t1.amt) AS real) / (SELECT SUM(amt) FROM t1)*100,1) v1
                 , ROUND(CAST(IFNULL(SUM(t2.amt), 0) AS real) / (SELECT SUM(amt) FROM t1)*100,1) v2
            FROM t1
                 LEFT JOIN t1 t2 ON t2.amt >= t1.amt
            GROUP BY t1.ITEM_CODE)
SELECT t1.ITEM_CODE CODE
     , ITEM_NAME NAME
     , t1.amt SAL_AMT
     , t2.v0 CML_AMT
     , t2.v1 || '%' SAL_COMP
     , t2.v2 || '%' TTL_COMP
     , CASE
           WHEN t2.v2 <= 40 THEN 'A'
           WHEN t2.v2 <= 80 THEN 'B'
           ELSE 'C' END AS RANK
FROM t1
     JOIN t2 ON t1.ITEM_CODE = t2.ITEM_CODE
     JOIN ITEM ON ITEM.ITEM_CODE = t2.ITEM_CODE

ORDER BY 3 DESC, 1 DESC


提出情報
提出日時2024/06/14 11:47:46
コンテスト第7回 SQLコンテスト
問題ABC分析
受験者pp1mqa6hkm
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量86 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
85 MB
データパターン2
AC
86 MB
データパターン3
AC
85 MB