SQL/리트코드 문제풀이

[LeetCode] 1633. Percentage of Users Attended a Contest

너지살 2024. 5. 30. 17:24

 

 

 

문제 출저

https://leetcode.com/problems/percentage-of-users-attended-a-contest/?envType=study-plan-v2&envId=top-sql-50

 

 

 

문제 풀이

각 콘테스트에 등록된 사용자 비율을 소수점 이하 두 자리로 표현해야 합니다. 

 

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