You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算文章点击率(Click Through Rate):首页跳转至文章行为的聚合统计方法咨询

计算从首页跳转的文章点击率

看起来你已经搞定了单用户的访问记录查询,接下来咱们把逻辑扩展到全量用户,核心就是精准识别从首页跳转至其他文章的有效行为,再做聚合统计就行。下面分两种常见业务场景给你解决方案:

场景1:宽泛统计——包含首页的会话中所有后续文章访问

这种场景下,只要用户在同一次访问会话(userID+visitnum 组合代表一次完整访问)里先浏览了首页,之后不管隔了多少页面,访问的其他文章都算作从首页跳转来的点击。

WITH home_sessions AS (
    -- 第一步:筛选出所有访问过首页的用户会话
    SELECT userID, visitnum
    FROM table
    WHERE articleID = 'home_page'
),
article_clicks_from_home AS (
    -- 第二步:找出这些会话中所有非首页的文章访问记录
    SELECT t.articleID
    FROM table t
    JOIN home_sessions hs 
        ON t.userID = hs.userID 
        AND t.visitnum = hs.visitnum
    WHERE t.articleID != 'home_page'
),
home_total_sessions AS (
    -- 第三步:统计首页的总访问会话数(每个会话算一次首页访问)
    SELECT COUNT(DISTINCT CONCAT(userID, '-', visitnum)) AS total_home_sessions
    FROM table
    WHERE articleID = 'home_page'
)
-- 第四步:计算每个文章的点击率
SELECT 
    ac.articleID,
    COUNT(ac.articleID) AS total_clicks_from_home,
    hts.total_home_sessions,
    ROUND(COUNT(ac.articleID) / hts.total_home_sessions, 4) AS click_through_rate
FROM article_clicks_from_home ac
CROSS JOIN home_total_sessions hts
GROUP BY ac.articleID, hts.total_home_sessions
ORDER BY click_through_rate DESC;

场景2:精准统计——首页访问后紧接着的文章访问

如果业务上只把首页之后的下一个页面算作直接跳转,那可以调整关联条件,匹配visitpagenum刚好比首页大1的记录:

WITH home_page_records AS (
    -- 获取所有首页访问的详细记录
    SELECT userID, visitnum, visitpagenum
    FROM table
    WHERE articleID = 'home_page'
),
direct_clicks_after_home AS (
    -- 匹配首页之后紧接着的文章访问
    SELECT t.articleID
    FROM table t
    JOIN home_page_records hp 
        ON t.userID = hp.userID 
        AND t.visitnum = hp.visitnum
        AND t.visitpagenum = hp.visitpagenum + 1
),
home_total_views AS (
    SELECT COUNT(*) AS total_home_views
    FROM table
    WHERE articleID = 'home_page'
)
SELECT 
    dca.articleID,
    COUNT(dca.articleID) AS direct_click_count,
    htv.total_home_views,
    ROUND(COUNT(dca.articleID) / htv.total_home_views, 4) AS click_through_rate
FROM direct_clicks_after_home dca
CROSS JOIN home_total_views htv
GROUP BY dca.articleID, htv.total_home_views
ORDER BY click_through_rate DESC;

关键逻辑说明

  • 用CTE(公共表表达式)拆分步骤,让SQL更易读也方便后续调整;
  • 会话识别:userID+visitnum是判断跳转行为的核心维度,它代表用户的一次完整访问周期;
  • 点击率定义:这里的点击率是「从首页跳转至该文章的次数」除以「首页的总访问次数/会话数」,你可以根据业务需求灵活调整分子分母的统计规则(比如是否需要对用户去重)。

内容的提问来源于stack exchange,提问作者CowboyCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:52:31