Как программно получить количество просмотров страницы в месяц? Желательно через Data Explorer

Привет, сообщество!

Случалось ли кому-нибудь написать запрос в Data Explorer для получения ежемесячного числа просмотров страниц?

Есть ли какой-либо другой программный способ получить эти данные, кроме ручного доступа к моей панели управления?

Это запрос для отчёта Consolidated Pageviews, надеюсь, он поможет.

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

SELECT
    ar.date,
    CASE 
      WHEN ar.req_type=6 THEN 'Краулеры'
      WHEN ar.req_type=7 THEN 'Авторизованные пользователи'
      WHEN ar.req_type=8 THEN 'Анонимные пользователи'
    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:

Да, это возможно. В данном случае сначала нужно изменить формат поля даты, а затем настроить группировку. Ниже приведён скорректированный запрос.

-- [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
месяц год количество
1 2021 1000
2 2021 500
1 2020 1500
2 2020 2000
3 2020 2500

Отлично! Спасибо за помощь!