【问题标题】:how to sum based on groups in tableau如何根据表格中的组求和
【发布时间】:2015-08-15 03:40:10
【问题描述】:

所以我在 Tableau 中加入了 2 个表。第一张表是按合同划分的 3 个项目:
项目 |合同 |位置 |金额
项目1 |合同1 |德克萨斯 | 100
项目1 |合同2 |德克萨斯 | 200
项目1 |合同3 |德克萨斯 | 300
项目2 |合同1 |纽约 | 1000
项目2 |合同2 |纽约 | 2000
项目2 |合同3 |纽约 | 3000

第二个表格是合同细节:
项目 |合同 |详情 |风险
项目1 |合同1 |一个 | 0.5
项目1 |合同1 |乙 | 0.9
项目1 |合同1 | c | 0.99
项目2 |合同3 |一个 | 0.2
项目2 |合同3 |乙 | 0.45
项目2 |合同3 | c | 0.33

我正在制作一个仪表板,因此必须加入这些表,问题是一旦加入,结果表在第一个表金额字段中具有重复项。因此,如果我想要按位置计算总和(金额),它会计算:
德州为 100 + 100 + 100 + 200 + 300,当我想要 100+200+300 时。既然我加入了表格,我如何从第一个表格中获取德州的总和?

【问题讨论】:

    标签: sql distinct tableau-api


    【解决方案1】:

    笼统地说..不知道您可能遇到的具体问题..

    如果详细信息/风险信息与您正在进行的工作无关,则在加入之前选择不同的值。

    SELECT 
        *
    FROM 
         (Distinct Project,Contract) Table2 AS a
         INNER JOIN Table1 as b
             ON a.Project = b.Project
             AND a.Contract = B.Contract
    

    如果其他数据与您相关,那么您需要弄清楚如何对其进行反规范化。在这种情况下,您将如何在匹配的行中分割风险以创建每个区域的单行。 .. 说这不是风险,说这是你想加起来的费用明细,你可以这样做

    SELECT 
        b.*
        ,sum(a.cost)
    FROM 
         Table2 AS a
         INNER JOIN Table1 as b
             ON a.Project = b.Project
             AND a.Contract = B.Contract
    GROUP BY
        a.Project
        a.Contract
    

    不确定这是否有帮助?

    嗯..如果不确切知道您正在使用什么,这将很棘手..但我有两个建议:

    1. 通过将这两个字段加在一起创建一个项目合同列,然后加入该列。

    例如,当在 excel 中使用 powerpivot 并且我正在处理销售订单时,我经常需要创建像 :=A1&"-"&B1 这样的列来给我一个“1234-10”类型的结果。

    1. 规范化(使用数据库中的视图)将您的项目单独放入一个表中(可能其中包含总成本),以便所有其他表仅链接到该表。 - 我将不得不玩它,看看它是如何成功的。

    ..我只是把这些想法放在那里,因为它们可能会有所帮助,但如果它们只是令人困惑的话,我很抱歉。

    【讨论】:

    • 我认为连接是您在 Tableu 中使用的东西。在这种情况下,您可以在数据库中创建一个选择 Distinct Project,Contract 的视图吗?
    • 感谢 gordatron,细节很重要,因为我正在使用仪表板向下钻取。我只是想在画面中创建一个带有位置 + 总和(数量)的地图 - 在仪表板中单击时会打开详细信息。
    • 在那里添加了一些额外的建议.. 抱歉,如果它们没有用处
    • 感谢 gordatron 所做的一切,我决定将第一个表格简化为仅显示项目、删除合同并使用 SQL 汇总信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2021-08-20
    • 2016-05-08
    相关资源
    最近更新 更多