문제
전체 메시지 활동량을 기준으로 게스트를 순위별로 나열하여 가장 활발한 게스트를 식별하시오. 가장 활발한 게스트는 호스트와 가장 많은 메시지를 주고받은 사람이어야 하며, 가장 높은 순위를 가져야 한다. 두 명 이상의 게스트가 동일한 메시지 수를 가지고 있다면 동일한 순위를 가져야 한다. 중요한 점은, 여러 게스트가 같은 순위를 가지더라도 순위 번호는 건너뛰지 않아야 한다. 결과는 순위, 게스트 식별자, 각 게스트의 총 메시지 수를 명확하게 보여주는 형식으로, 가장 활발한 게스트부터 덜 활발한 게스트 순으로 정렬하여 제시하시오.
테이블설명
예상결과
✏️ 풀이
WITH sum_m AS (
SELECT id_guest, SUM(n_messages) AS sum_n_message
FROM airbnb_contacts
GROUP BY 1
)
SELECT id_guest,
dense_rank() OVER(ORDER BY sum_n_message DESC) AS ranking,
sum_n_message
FROM sum_m
ORDER BY 3 DESC;
1. 게스트별 메시지 활동량 구하기
2. 1번 테이블을 기준으로 dense_rank()를 사용해서 순위 구하기
'[코딩테스트] > [SQL]' 카테고리의 다른 글
[StrataScratch - SQL] (Medium) Number of Streets Per Zip Code (0) | 2025.05.14 |
---|---|
[StrataScratch - SQL] (Medium) Acceptance Rate By Date (0) | 2025.05.13 |
[StrataScratch - SQL] (Medium) Premium vs Freemium (0) | 2025.05.13 |
[StrataScratch - SQL] (Medium) Clicked Vs Non-Clicked Search Results (0) | 2025.05.09 |
[StrataScratch - SQL] (Medium) Meta/Facebook Accounts (0) | 2025.05.09 |