🍋 ⚾️ 💻 🎬 🎮

coding_test/SQL 문제

[LeetCode] 1633. Percentage of Users Attended a Contest (AGGREGATE)

aeightchill 2025. 2. 10. 18:42
728x90

< 문제 >

[SQL50] 1633. Percentage of Users Attended a Contest (AGGREGATE)


 


< 풀이 >

SELECT contest_id, 
       ROUND(COUNT(DISTINCT user_id) / (SELECT COUNT(1) FROM Users)::decimal * 100, 2) AS percentage
FROM Register
GROUP BY contest_id
ORDER BY percentage DESC, contest_id;

 


Decimal

  • decimal  :  고정 소수점(fixed-point) 숫자형 타입
  • integer, float와 달리 정확한 소수 연산이 가능하다.
  • decimal(p, s)
    • p  :  전체 자릿수(precision,  최대 131072자리)
    • s  :   소수점 이하 자릿수(scale,   최대 16383자리)
  • ::decimal
    • COUNT(1) 결과를 decimal 타입으로 변환한다. (정수(int)  →   소수(decimal))
    • 예시 ) 100::decimal  →   100.0    /     0::decimal  →   0.0

 

 

728x90