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

如何在MAQL中创建指标实现按日筛选Top10站点的TimeSpent汇总

实现每日单独筛选Top10站点的解决方案

以下是不同场景下的可落地实现方法:

方案1:DAX实现(Power BI场景)

  • 先创建当日站点排名度量:
每日站点排名 = 
RANKX(
    ALLSELECTED('数据表'[Domain]),
    CALCULATE(SUM('数据表'[TimeSpent]), ALLEXCEPT('数据表', '数据表'[Date], '数据表'[Domain]))
)
  • 再创建筛选后的停留时长度量:
Top10站点停留时长 = IF([每日站点排名] <= 10, SUM('数据表'[TimeSpent]), BLANK())
  • 图表配置:X轴选择Date,Y轴绑定刚创建的Top10站点停留时长,图例选择Domain即可,空值不会在堆叠柱状图中展示。

方案2:表计算实现(Tableau场景)

  • 基础字段拖放:Date拖到列功能区,Domain拖到标记卡的颜色栏,SUM(TimeSpent)拖到行功能区
  • 右键行功能区的SUM(TimeSpent),添加表计算:
    • 计算类型选择「排名」
    • 计算依据选择「特定维度」,仅勾选Domain
    • 排序规则选择降序
  • 右键创建好的排名计算字段,选择「筛选」,仅保留值为1-10的项即可。

方案3:数据预处理实现(通用场景,适配所有BI工具)

如果不想在BI可视化层做复杂计算,可以在数据清洗阶段直接生成符合要求的数据集,SQL参考逻辑:

WITH daily_domain_total AS (
    SELECT 
        Date,
        Domain,
        SUM(TimeSpent) AS total_time
    FROM 业务表名
    GROUP BY Date, Domain
),
daily_rank AS (
    SELECT 
        *,
        ROW_NUMBER() OVER (PARTITION BY Date ORDER BY total_time DESC) AS rn
    FROM daily_domain_total
)
SELECT Date, Domain, total_time 
FROM daily_rank 
WHERE rn <= 10
  • 用预处理后的数据集制作堆叠柱状图,X轴选Date,Y轴选total_time,图例选Domain即可。

补充提示:如果需要将每日10名以外的站点统一归类为「其他」合并展示,可以在上述计算逻辑中增加判断,将排名>10的Domain统一赋值为「其他」后再做聚合即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:45:03