# Отчет по панели управления: сводные просмотры страниц с определением браузера

**URL:** https://meta.discourse.org/t/dashboard-report-consolidated-pageviews-with-browser-detection/312968
**Category:** Data & reporting
**Tags:** sql-query, dashboard-reports, dashboard-sql
**Created:** [20.Июнь.2024 23:22:48 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews-with-browser-detection/312968 "2024-06-20T23:22:48Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![SaraDev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saradev/32/335139_2.png) [@SaraDev](https://meta.discourse.org/u/SaraDev)
#### Post date: [20.Июнь.2024 23:22:48 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews-with-browser-detection/312968/1 "2024-06-20T23:22:48Z")

</div>

Это SQL-версия отчёта «Dashboard» для сводных просмотров страниц с определением браузера.

Этот отчёт [Data Explorer](https://meta.discourse.org/t/32566?silent=true) предоставляет ежедневную статистику просмотров страниц сайта с определением браузера за указанный период. Просмотры страниц классифицируются на четыре типа:

- Просмотры из авторизованного браузера
- Просмотры из анонимного браузера
- Просмотры от известных краулеров
- Другие просмотры страниц

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

SELECT
  ar.date::date AS "date",
  SUM(CASE WHEN ar.req_type = 15 THEN count ELSE 0 END) AS "Logged In Browser",
  SUM(CASE WHEN ar.req_type = 13 THEN count ELSE 0 END) AS "Anonymous Browser",
  SUM(CASE WHEN ar.req_type = 6 THEN count ELSE 0 END) AS "Known Crawler",
  SUM(
    CASE WHEN ar.req_type = 8 THEN count
        WHEN ar.req_type = 7 THEN count
        WHEN ar.req_type = 13 THEN -count
        WHEN ar.req_type = 15 THEN -count
        ELSE 0
    END
  ) AS "Other pageviews"
FROM
  application_requests ar
WHERE
  ar.date::date >= :start_date
  AND ar.date <= :end_date
GROUP BY
  ar.date
ORDER BY
  ar.date ASC

```

### Пояснение к SQL-запросу

- **Параметры** :
  - `:start_date` — начальная дата отчёта.
  - `:end_date` — конечная дата отчёта.
  - Оба параметра даты принимают формат `YYYY-MM-DD`.

- **Пункт SELECT** :
  - `ar.date::date AS "date"`: Преобразует поле `date` в тип date и присваивает ему псевдоним «date».
  - `SUM(CASE WHEN ar.req_type = 15 THEN count ELSE 0 END) AS "Logged In Browser"`: Суммирует значения счётчика, где `req_type` равен 15, и присваивает результату псевдоним «Logged In Browser».
  - `SUM(CASE WHEN ar.req_type = 13 THEN count ELSE 0 END) AS "Anonymous Browser"`: Суммирует значения счётчика, где `req_type` равен 13, и присваивает результату псевдоним «Anonymous Browser».
  - `SUM(CASE WHEN ar.req_type = 6 THEN count ELSE 0 END) AS "Known Crawler"`: Суммирует значения счётчика, где `req_type` равен 6, и присваивает результату псевдоним «Known Crawler».
  - `SUM(CASE WHEN ar.req_type = 8 THEN count WHEN ar.req_type = 7 THEN count WHEN ar.req_type = 13 THEN -count WHEN ar.req_type = 15 THEN -count ELSE 0 END) AS "Other pageviews"`: Суммирует значения счётчика для других типов запросов, корректируя значения для `req_type` 13 и 15 путём их вычитания, и присваивает результату псевдоним «Other pageviews».

- **Пункт FROM** :
  - `FROM application_requests ar`: Указывает таблицу `application_requests` как источник данных, присваивая ей псевдоним `ar`.

- **Пункт WHERE** :
  - `ar.date::date >= :start_date AND ar.date <= :end_date`: Фильтрует записи, оставляя только те, где `date` попадает в указанный диапазон от `:start_date` до `:end_date`.

- **Пункт GROUP BY** :
  - `GROUP BY ar.date`: Группирует результаты по полю `date` для агрегации счётчиков по каждому дню.

- **Пункт ORDER BY** :
  - `ORDER BY ar.date ASC`: Сортирует результаты по возрастанию поля `date`.

### Результаты

Результаты этого запроса предоставят ежедневную разбивку просмотров страниц по типу браузера или краулера. Каждая строка в наборе результатов будет содержать:

- `date`: Конкретная дата.
- `Logged In Browser`: Общее количество просмотров страниц от авторизованных пользователей.
- `Anonymous Browser`: Общее количество просмотров страниц от анонимных пользователей.
- `Known Crawler`: Общее количество просмотров страниц от известных краулеров.
- `Other pageviews`: Общее количество просмотров страниц других типов.

### Пример результатов

| date | Logged In Browser | Anonymous Browser | Known Crawler | Other pageviews |
| --- | --- | --- | --- | --- |
| 2024-05-02 | 1238 | 1085 | 2727 | 3983 |
| 2024-05-03 | 1039 | 1068 | 5718 | 3958 |
| 2024-05-04 | 572 | 628 | 3847 | 3761 |
| 2024-05-05 | 447 | 551 | 2093 | 3773 |

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [21.Июнь.2024 06:28:03 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews-with-browser-detection/312968/2 "2024-06-21T06:28:03Z")

</div>

Странно. У меня ноль для обоих браузеров. Учитываются только боты.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [21.Июнь.2024 06:38:23 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews-with-browser-detection/312968/3 "2024-06-21T06:38:23Z")

</div>

В отчёте панели управления «Совокупные просмотры страниц с определением браузера» также отображаются только боты?

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [21.Июнь.2024 07:10:43 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews-with-browser-detection/312968/4 "2024-06-21T07:10:43Z")

</div>

Вы имеете в виду тот экспериментальный? Он работает и всё показывает отлично.

---

<div class="post-metadata">

### Author: ![SaraDev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saradev/32/335139_2.png) [@SaraDev](https://meta.discourse.org/u/SaraDev)
#### Post date: [21.Июнь.2024 18:52:13 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews-with-browser-detection/312968/5 "2024-06-21T18:52:13Z")

</div>

Этот отчет был [добавлен](https://github.com/discourse/discourse/commit/2f2da7274732cba30d03b6c5c3a4194652cb6783) в Discourse 25 апреля 2024 года, и в нем не будут отображаться данные для представлений «Браузер с авторизацией» или «Анонимный браузер» за даты до этого дня.

Если вы не видите результатов для представлений «Браузер с авторизацией» или «Анонимный браузер» после 25 апреля 2024 года, вам необходимо обновить ваш экземпляр Discourse до последней версии.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [21.Июнь.2024 19:49:57 UTC](https://meta.discourse.org/t/dashboard-report-consolidated-pageviews-with-browser-detection/312968/6 "2024-06-21T19:49:57Z")

</div>

Я wondered, почему SQL-фрагмент не показывал просмотры от пользователей, только от ботов. А потом я попробовал june. Плюс да, мой инстанс обновляется примерно три раза в неделю 😜

(Чёрт, эти виртуальные клавиатуры… слишком легко нажать не туда 😏 🤦‍♂️)

Но я пересобрал без [Data Explorer](https://meta.discourse.org/t/32566?silent=true), а сразу после этого — с ним, и цифры появились.

Так что, полагаю, это останется ещё одним случаем из «Сумеречной зоны». Возможно ли, чтобы с SQL была какая-то проблема с кэшированием? 😳
