[sql] 인라인 뷰를 사용하여 월별로 가장 많이 방문한 고객을 조회할 수 있나요?

아래는 인라인 뷰를 사용하여 월별로 가장 많이 방문한 고객을 조회하는 SQL 쿼리의 예시입니다.

SELECT month, customer_id, visit_count
FROM (
    SELECT EXTRACT(MONTH FROM visit_date) AS month,
           customer_id,
           COUNT(*) AS visit_count,
           RANK() OVER (PARTITION BY EXTRACT(MONTH FROM visit_date) ORDER BY COUNT(*) DESC) AS rank
    FROM visits
    GROUP BY EXTRACT(MONTH FROM visit_date), customer_id
) inline_view
WHERE rank = 1;

이 쿼리는 방문일자에서 월을 추출하고, 각 월별로 고객별 방문 수를 계산한 후에, RANK() 함수를 사용하여 가장 많이 방문한 고객을 순위별로 나열한 뒤, 순위가 1인 고객을 선택하는 방식으로 동작합니다.