문제 출저
문제 풀이
각 콘테스트에 등록된 사용자 비율을 소수점 이하 두 자리로 표현해야 합니다.
Register 테이블에 contest_id를 group by로 그룹화하여 각 콘테스트 별로 참여한 유저의 수를 구합니다.
Users에서 전체 유저 갯수를 구합니다. 전체 유저 갯수를 나누어 비율을 구하고 round를 통해 소수점 이하 두 자리로 표현합니다.
SQL
# 각 콘테스트에 등록된 사용자 비율을 소수점 이하 두 자리 반올림
select
r.contest_id,
round( count(u.user_id) / (select count(*) from Users) * 100, 2)
as percentage
from
Users as u
right join
Register as r on u.user_id = r.user_id
group by
r.contest_id
order by
percentage desc, r.contest_id