최근 N일간 조회 수 SQL 쿼리 작성법|기간 필터링 + 정렬 응용

웹사이트나 서비스 운영에서 특정 기간(예: 최근 7일, 30일)의 조회 수를 집계하는 일은 매우 중요합니다.
이번 글에서는 기간 필터링ORDER BY를 활용해 최근 N일간 데이터를 효과적으로 추출하는 SQL 쿼리 작성 방법을 알아보겠습니다.

MySQL 예제

SELECT DATE(view_date) AS view_day,
       COUNT(*) AS view_count
FROM page_views
WHERE view_date >= CURDATE() - INTERVAL 7 DAY
GROUP BY view_day
ORDER BY view_day DESC;
SQL
  • CURDATE() - INTERVAL N DAY를 사용해 오늘 기준 N일 전 데이터를 필터링
  • GROUP BY로 날짜별 집계
  • ORDER BY DESC로 최신 날짜부터 정렬

Oracle 예제

SELECT TO_CHAR(view_date, 'YYYY-MM-DD') AS view_day,
       COUNT(*) AS view_count
FROM page_views
WHERE view_date >= TRUNC(SYSDATE) - 7
GROUP BY TO_CHAR(view_date, 'YYYY-MM-DD')
ORDER BY view_day DESC;
SQL
  • TRUNC(SYSDATE)로 날짜의 시간을 제거
  • 동일하게 N일 전 데이터 필터링 가능

활용 팁

  • N일을 7, 30, 90 등으로 자유롭게 변경 가능
  • 기간 필터링을 WHERE 절에서 하고, 정렬은 ORDER BY에서만 담당
  • 조회 수 분석뿐 아니라 매출, 가입자 수 등에도 그대로 응용 가능

마무리

최근 N일간 조회 수 집계는 데이터 분석과 리포트 작성에서 기본이 되는 작업입니다.
이번 쿼리 구조를 익혀두면 기간 필터를 변경해 다양한 분석을 빠르게 수행할 수 있습니다.
다음 글에서는 특정 시간대별 조회 수 집계 방법에 대해 다뤄보겠습니다.

관련 포스팅들

위로 스크롤