월간 페이지뷰를 프로그래매틱으로 가져오는 방법? Data Explorer 사용 권장

커뮤니티 여러분, 안녕하세요!

혹시 Data explorer를 사용해 월별 페이지뷰 수를 가져오는 쿼리를 작성해 보신 분이 계신가요?

대시보드에 수동으로 접근하는 것 외에 해당 수치를 가져올 수 있는 다른 프로그래매틱한 방법이 있을까요?

Consolidated Pageviews 보고서 뒤에 있는 쿼리입니다. 도움이 되길 바랍니다.

-- [params]
-- date :start_date
-- date :end_date

SELECT
    ar.date,
    CASE 
      WHEN ar.req_type=6 THEN 'Crawlers'
      WHEN ar.req_type=7 THEN 'Logged in users'
      WHEN ar.req_type=8 THEN 'Anonymous users'
    END,
    ar.count AS views
FROM application_requests ar
WHERE req_type IN (6,7,8)
    AND ar.date::date BETWEEN :start_date::date
	AND :end_date::date
ORDER BY ar.date ASC, ar.req_type

완벽합니다! 조금 도움이 됩니다!

이 번호를 가져올 수 있을까요?

이 쿼리는 해당 기간 동안의 총 페이지뷰 수를 나열합니다.

-- [params]
-- date :start_date
-- date :end_date

WITH data AS (
    SELECT
        ar.date,
        CASE 
          WHEN ar.req_type=6 THEN '크롤러'
          WHEN ar.req_type=7 THEN '로그인 사용자'
          WHEN ar.req_type=8 THEN '익명 사용자'
        END AS Pageview,
        ar.count AS views
    FROM application_requests ar
    WHERE req_type IN (6,7,8)
        AND ar.date::date BETWEEN :start_date::date
    	AND :end_date::date
    ORDER BY ar.date ASC, ar.req_type
)

SELECT Pageview, SUM(views) qtt_views
FROM data
GROUP BY Pageview

완벽해요! 바로 제가 찾던 거였어요.

실제로 한 가지 더 질문이 있습니다. 아마도 큰 부담은 아닐 겁니다.

sum을 사용하여 결과를 다음 형식으로 가져올 수 있는 방법이 있을까요?

네, 가능합니다. 이 경우 먼저 날짜 필드의 형식을 조정하고, 그 다음 group by를 조정해야 합니다. 아래는 조정된 쿼리입니다.

-- [params]
-- date :start_date
-- date :end_date

WITH data AS 
    (SELECT
        date_part('month', ar.date) AS month,
        date_part('year', ar.date) AS year,
        CASE 
          WHEN ar.req_type=6 THEN 'Crawlers'
          WHEN ar.req_type=7 THEN 'Logged in users'
          WHEN ar.req_type=8 THEN 'Anonymous users'
        END AS pageview,
        ar.count AS views
    FROM application_requests ar
    WHERE req_type IN (6,7,8)
        AND ar.date::date BETWEEN :start_date::date
    	AND :end_date::date
    ORDER BY ar.date ASC, ar.req_type
    )
    
  SELECT 
    month, 
    year, 
    sum(views) AS qtt_views
  FROM  data 
  GROUP BY year, month
  ORDER BY year DESC, month ASC
month year count
1 2021 1000
2 2021 500
1 2020 1500
2 2020 2000
3 2020 2500

완벽합니다! 도움 주셔서 감사합니다!