コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
with SUB1 as(
select
SD.ITEM_CODE, IT.ITEM_NAME, SUM(SD.UNITPRICE * SD.SALES_QTY) SAL_AMT
from
SALES SA
inner join SALES_DTL SD
on SA.SALES_NO = SD.SALES_NO
inner join ITEM IT
on SD.ITEM_CODE = IT.ITEM_CODE
where SA.SALES_DATE between '2023-06-01' and '2023-06-30'
group by SD.ITEM_CODE, IT.ITEM_NAME
)
,SUB2 as(
select
SUM(SD.UNITPRICE * SD.SALES_QTY) A_PRICE
from
SALES SA
inner join SALES_DTL SD
on SA.SALES_NO = SD.SALES_NO
where SA.SALES_DATE between '2023-06-01' and '2023-06-30'
)
select
ITEM_CODE CODE
,ITEM_NAME NAME
,SAL_AMT
,SUM(SAL_AMT) OVER (ORDER BY SAL_AMT desc) CML_AMT
,ROUND(SAL_AMT * 1.0 / A_PRICE * 100.0, 1) || '%' SAL_COMP
,ROUND(SUM(SAL_AMT) OVER (ORDER BY SAL_AMT desc) * 1.0 / A_PRICE * 100.0, 1) || '%' TTL_COMP
--,SUM(SAL_AMT) OVER (PARTITION BY SAL_AMT) SAL_SUM
--,AVG(SAL_AMT) OVER (ORDER BY SAL_AMT desc) SAL_SUM2
--,MIN(SAL_AMT) OVER (ORDER BY SAL_AMT desc) SAL_SUM3
--,ROW_NUMBER() OVER (PARTITION BY SAL_AMT order by ITEM_CODE desc) ROWNUM
--,A_PRICE
,case
when ROUND(SUM(SAL_AMT) OVER (ORDER BY SAL_AMT desc) * 1.0/ A_PRICE * 100.0, 1) <= 40 then 'A'
when ROUND(SUM(SAL_AMT) OVER (ORDER BY SAL_AMT desc) * 1.0/ A_PRICE * 100.0, 1) between 41 and 80 then 'B'
else 'C'
end RANK
from SUB1
cross join SUB2
ORDER BY SAL_AMT desc, ITEM_CODE desc
提出情報
提出日時 | 2023/07/03 12:52:38 |
コンテスト | 第7回 SQLコンテスト |
問題 | ABC分析 |
受験者 | ckoga |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 81 MB |
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
81 MB
データパターン2
AC
78 MB
データパターン3
AC
79 MB