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

Tableau多维度筛选问题:统计适配佛卡夏的其他烘焙食材数量

解决方案:统计适配佛卡夏及其他品类的食材数量

一、SQL层面解决(适合大型数据集,效率更高)

方法1:自连接查询

直接通过自连接关联佛卡夏的食材和其他品类的食材,统计每个品类的重合食材数:

SELECT 
    bg2.烘焙品类,
    COUNT(DISTINCT bg2.食材) AS 食材去重计数
FROM 
    烘焙食材表 bg1
JOIN 
    烘焙食材表 bg2 ON bg1.食材 = bg2.食材
WHERE 
    bg1.烘焙品类 = 'Focaccia'
    AND bg2.烘焙品类 != 'Focaccia'
GROUP BY 
    bg2.烘焙品类
ORDER BY 
    食材去重计数 DESC;

方法2:窗口函数标记法

先标记出所有佛卡夏使用的食材,再关联统计其他品类的重合数量:

WITH 佛卡夏食材标记 AS (
    SELECT 
        食材,
        MAX(CASE WHEN 烘焙品类 = 'Focaccia' THEN 1 ELSE 0 END) AS 是佛卡夏食材
    FROM 烘焙食材表
    GROUP BY 食材
)
SELECT 
    bg.烘焙品类,
    COUNT(DISTINCT bg.食材) AS 食材去重计数
FROM 烘焙食材表 bg
JOIN 佛卡夏食材标记 fm ON bg.食材 = fm.食材
WHERE 
    fm.是佛卡夏食材 = 1
    AND bg.烘焙品类 != 'Focaccia'
GROUP BY bg.烘焙品类
ORDER BY 食材去重计数 DESC;

二、Tableau层面解决

方案1:用固定级别计算字段(推荐,无需数据混合)

  1. 创建计算字段 是否为佛卡夏食材:
{ FIXED [食材] : MAX(CASE WHEN [烘焙品类] = 'Focaccia' THEN 1 ELSE 0 END) }

这个字段会给每个食材打标记:1代表该食材用于佛卡夏,0代表不用于。

  1. 设置筛选器:

    • 把是否为佛卡夏食材拖到筛选器面板,选择「等于1」
    • 把烘焙品类拖到筛选器面板,选择排除「Focaccia」
  2. 构建视图:

    • 将烘焙品类拖到行功能区
    • 将食材拖到标记卡的文本位置,右键选择「度量 > 计数(不同)」,这就是需要的「食材去重计数」

方案2:修正数据混合逻辑(如果你坚持用混合)

  1. 主数据源:保留全量数据,创建计算字段 非佛卡夏品类:
IIF([烘焙品类] != 'Focaccia', [烘焙品类], NULL)
  1. 副数据源:筛选烘焙品类为「Focaccia」,只保留「食材」列
  2. 关联主副数据源:用「食材」字段作为关联键
  3. 构建视图:
    • 将主数据源的非佛卡夏品类拖到行功能区
    • 将副数据源的食材拖到标记卡,选择「计数(不同)」
    • 筛选非佛卡夏品类不为空,即可得到正确的品类名称和计数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:32:40