ソースコード
/*都道府県別男女別に飲酒状況を集計した飲酒状況データより、都道府県別に毎日飲酒している人数の飲酒率を算出し、飲酒率が高い順に表示しなさい。
人数は性別コード = '2' , '3' のデータを合算して求めなさい。

各コードの値は以下となっている。

カテゴリコード:'110' (総数)、'120' (毎日飲酒)、'130' (不明)
性別コード:'1' (不明)、'2' (男)、'3' (女)
飲酒率は、都道府県毎に下記の式で求め、小数点第2位を四捨五入する。

総調査人数
毎日飲酒人数
​
 ×100

表示項目は以下とする。(エイリアスを使用し→の項目名とする)

PF_CODE → CODE
PF_NAME → NAME
都道府県毎の毎日飲酒率 → PERCENTAGE
表示順

飲酒率の降順
都道府県コードの降順*/

SELECT DH.PF_CODE AS CODE
,PF_NAME AS NAME
,ROUND(CAST(SUM(DHEV.AMT) AS REAL)/CAST(SUM(DH.AMT) AS REAL)*100,1) AS PERCENTAGE
FROM DRINK_HABITS DH
LEFT JOIN PREFECTURE PR
ON DH.PF_CODE = PR.PF_CODE 
INNER JOIN DRINK_HABITS DHEV
ON DHEV.PF_CODE = DH.PF_CODE 
AND DHEV.CATEGORY_CODE='120'
AND DHEV.GENDER_CODE<>'1'
WHERE 1=1
AND DH.CATEGORY_CODE='110'
AND DH.GENDER_CODE<>'1'
GROUP BY DH.PF_CODE
,PF_NAME
ORDER BY PERCENTAGE desc
,CODE desc
提出情報
提出日時2022/09/24 18:37:31
コンテスト第2回 SQLコンテスト
問題飲酒率
受験者123456789010
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量78 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
78 MB
データパターン2
AC
75 MB