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

在Tableau中如何基于日期与字符串列标记数值列的最大值行?

分组内最大值标记方案(Access + Tableau)

Access SQL实现

直接用子查询先算出每个分组的最大值,再关联原表做判断:

SELECT 
    t.日期列,
    t.数值列,
    t.字符串列 AS 州,
    IIF(t.数值列 = g.分组最大值, 1, 0) AS 是否最大值标记
FROM 
    你的表名 t
INNER JOIN (
    -- 子查询:按年份+州分组,取每组数值最大值
    SELECT 
        YEAR(日期列) AS 年份,
        字符串列 AS 州,
        MAX(数值列) AS 分组最大值
    FROM 
        你的表名
    GROUP BY 
        YEAR(日期列), 字符串列
) g ON YEAR(t.日期列) = g.年份 AND t.字符串列 = g.州;

如果你的日期分组不是年份(比如季度/月份),把YEAR(日期列)换成对应的日期函数即可(比如DATEPART("q", 日期列)取季度)。

Tableau替代FIXED的实现方法

因为Access数据源不支持FIXED LOD,用以下两种方法替代:

方法1:INCLUDE LOD表达式

创建计算字段是否最大值标记:

IF [数值列] = {INCLUDE YEAR([日期列]), [字符串列]: MAX([数值列])} THEN 1 ELSE 0 END

INCLUDE会基于指定的维度(年份+州)计算最大值,同时保留视图中已有的其他维度,适配你的需求。

方法2:表计算排名法

  1. 先创建计算字段数值排名:
RANK_UNIQUE([数值列])
  1. 编辑这个字段的计算依据:选择「高级」,设置分区为年份和字符串列(州),排序为数值列降序。
  2. 再创建标记字段:
IF [数值排名] = 1 THEN 1 ELSE 0 END

排名为1的行就是分组内的最大值,直接标记为1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:30:58