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

SQL转Tableau:实现固定cohort_month_since=0时price_total值的逻辑

在Tableau中实现固定cohort_month_since=0时的price_total值

你要实现的逻辑是把每个month分组下的price_total固定为该组内cohort_month_since=0时的数值,对应你用SQL开窗函数实现的逻辑,在Tableau里可以通过**LOD表达式(详细级别表达式)**完成,具体步骤如下:

1. 创建计算字段

在Tableau中点击「分析」→「创建计算字段」,命名为固定初始价格(或自定义名称),输入以下表达式:

{INCLUDE [month]: MAX(IF [cohort_month_since] = 0 THEN [price_total] END)}

表达式说明

  • {INCLUDE [month]}:对应SQL里的PARTITION BY month_column,表示按month字段分组计算
  • MAX(IF [cohort_month_since] = 0 THEN [price_total] END):和你SQL中的CASE WHEN逻辑完全一致,提取分组内cohort_month_since=0的price_total值(因为每个分组里这个值唯一,用MAX/MIN/AVG结果都相同)

2. 替换字段查看效果

把新建的固定初始价格字段拖到视图中,替换原来的price_total字段,就能得到你期望的结果:

当前数据(原结果)

month   | cohort_month_since | price_total
Jan 2020 |        0           |  745.09
Jan 2020 |        1           |  745.39
Jan 2020 |        2           |  746.01
Jan 2020 |        3           |  744.99

期望数据(实现后)

month   | cohort_month_since | 固定初始价格
Jan 2020 |        0           |  745.09
Jan 2020 |        1           |  745.09
Jan 2020 |        2           |  745.09
Jan 2020 |        3           |  745.09

可选:FIXED LOD写法

如果你的视图中不需要考虑其他额外维度,也可以用FIXED替代INCLUDE,表达式如下:

{FIXED [month]: MAX(IF [cohort_month_since] = 0 THEN [price_total] END)}

FIXED会严格只按指定的month分组计算,不受视图中其他维度的影响;而INCLUDE会结合视图中已有的维度进行分组,你可以根据实际场景选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:42:46