Это SQL-версия отчета Dashboard для анонимных пользователей.
Этот отчет показывает количество просмотров страниц, полученных сайтом каждый день от анонимных пользователей (пользователей, не вошедших в учетную запись), за указанный диапазон дат.
--[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, которые используются для фильтрации данных по нужному временному промежутку. Оба параметра даты принимают формат ГГГГ-ММ-ДД.
Выбор данных: Выбираются два столбца: 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
Столбец req_type в таблице application_requests классифицирует тип запроса. В этом запросе нас интересует req_type = 8, который соответствует анонимным просмотрам страниц.
Другие значения req_type представляют различные виды запросов, такие как просмотры страниц поисковыми роботами, просмотры страниц авторизованными пользователями и различные статусы HTTP-ответов.
Я тоже изначально рассматривал этот вариант, но отчёт в панели администратора включает только page_view_anon, а не page_view_anon_mobile.
В текущем виде этот запрос является точной копией отчёта панели администратора; вы можете убедиться в этом, запустив запрос и сравнив результаты с данными отчёта.
Это поднимает другой, но связанный вопрос: должен ли отчёт панели администратора включать анонимные просмотры страниц с мобильных устройств?
По интуиции я бы сказал, что да, но было бы интересно узнать и другие мнения на этот счёт.
Ах, извините. Я должен был быть более конкретным в своём комментарии. Я заметил, что этот запрос является точной копией, и имел в виду, что сам отчёт панели управления должен включать его.
Извините, у меня сейчас утро, и мне нужно больше кофе, поэтому я уперся в языковую стену.
Вы думаете, что теперь в «итого» должны включаться и мобильные устройства, ведь сейчас они исключены? Или лучше показать две метрики: фактическое общее количество просмотров И количество мобильных просмотров?
На данный момент отчёт в панели управления, по-видимому, включает только один req_type (8), что означает подсчёт только анонимных просмотров с настольных устройств.
Мы задаёмся вопросом, почему не учитываются данные с мобильных устройств (либо в виде общей суммы, либо в виде двух отдельных показателей для более детального анализа).
Это не может быть правдой, или же там учитываются боты. По моим данным, у меня около 1000 в день, и это звучит правдоподобно. Но я знаю, что у меня очень мало десктопов. Ситуация, при которой у меня было бы 1000 десктопов и 9000 мобильных устройств (да, соотношение именно такое), не может быть правдой.
Хм. Да, эта логика будет увеличивать page_view_anon независимо от того, классифицируется ли просмотр страницы как мобильный. Думаю, мне нужно обновить некоторые запросы…