이것은 익명 사용자용 대시보드 보고서의 SQL 버전입니다.
이 보고서는 특정 날짜 범위 내에서 익명 사용자(계정에 로그인하지 않은 사용자)가 사이트를 방문한 일별 페이지뷰 수를 보여줍니다.
--[params]
-- date :start_date = 2023-12-01
-- date :end_date = 2024-01-01
SELECT
date,
SUM(count) AS pageviews
FROM
application_requests
WHERE
req_type = 8
AND date BETWEEN :start_date AND :end_date
GROUP BY
date
ORDER BY
date
SQL 쿼리 설명
- 파라미터 정의: 쿼리는 두 개의 파라미터인
:start_date와:end_date를 정의하여 시작하며, 이는 데이터를 원하는 시간 범위로 필터링하는 데 사용됩니다. 두 날짜 파라미터 모두YYYY-MM-DD날짜 형식을 받아들입니다. - 데이터 선택:
date컬럼과count의 합계를 선택하며, 이 합계는pageviews로 별칭이 지정됩니다.count는 각 레코드의 페이지뷰 수를 나타냅니다. - 데이터 소스: 데이터는 애플리케이션에 대해 수행된 다양한 유형의 요청을 기록하는
application_requests테이블에서 가져옵니다. - 필터링:
WHERE절은page_view_anon유형(req_type = 8)인 레코드와 지정된 날짜 범위에 해당하는 레코드만 포함하도록 필터링합니다. - 집계:
GROUP BY절은 결과를date컬럼별로 그룹화하여SUM함수가 각 날짜의 총 페이지뷰를 계산할 수 있게 합니다. - 정렬: 마지막으로, 결과는
date기준 오름차순으로 정렬되어 익명 페이지뷰의 시간 순서대로 된 뷰를 제공합니다.
결과 예시
| date | pageviews |
|---|---|
| 2023-12-01 | 12345 |
| 2023-12-02 | 11346 |
| 2023-12-03 | 18344 |
| 2023-12-04 | 15344 |
| 2023-12-05 | 12890 |
| … | … |
req_type에 대한 참고
application_requests 테이블의 req_type 컬럼은 요청의 유형을 분류합니다. 이 쿼리에서는 익명 페이지뷰에 해당하는 req_type = 8에 관심이 있습니다.
기타 req_type 값은 크롤러 페이지뷰, 로그인된 페이지뷰, 다양한 HTTP 응답 상태 코드 등 다른 종류의 요청을 나타냅니다.
모든 req_type 값:
0. http_total
1. http_2xx
2. http_background
3. http_3xx
4. http_4xx
5. http_5xx
6. page_view_crawler
7. page_view_logged_in
8. page_view_anon
9. page_view_logged_in_mobile
10. page_view_anon_mobile
11. api
12. user_api