仪表盘报告 - 集中页面浏览量与浏览器检测

这是仪表板报告的 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”。
    • 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
2 个赞

奇怪。两个浏览器我都得到了零。只计算了机器人。

“浏览器检测合并页面浏览量”仪表板报告是否也仅显示机器人?

你是说那个实验性的?它能正常工作,并且显示一切都很棒。

此报告已于 2024 年 4 月 25 日 添加到 Discourse,在此日期之前的 Logged In BrowserAnonymous Browser 视图将不会显示结果。

如果您在 2024 年 4 月 25 日之后缺少 Logged In BrowserAnonymous Browser 视图的结果,您需要将 Discourse 实例更新到最新版本。

我曾想知道为什么 SQL 代码片段没有显示用户视图,只有机器人视图。然后我尝试了六月。另外,我的实例每周都会升级三次 :winking_face_with_tongue:

(该死,这些虚拟键盘……太容易碰到错误的地方了 :smirking_face: :man_facepalming:

但我没有使用数据浏览器就重建了,之后又使用了数据浏览器,数字就出来了。

所以,我想这又将成为一个来自“暮光之城”的案例。SQL 是否可能存在某种缓存问题 :flushed_face: