首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Tableau中的计算字段复制运行中的总表计算?

如何使用Tableau中的计算字段复制运行中的总表计算?
EN

Stack Overflow用户
提问于 2020-06-13 15:13:58
回答 2查看 1.6K关注 0票数 1

我有两个字段: date和new patients。我需要计算患者的累积总和。使用表计算来运行total可以完成这项工作,但会阻止我在分析中使用预测和集群。如果日期小于图表维度中使用的日期,是否可以创建一个计算字段来计算患者总数?

EN

回答 2

Stack Overflow用户

发布于 2020-06-13 15:36:15

是否保留累计总和,但不显示用于计算该总和的日期?如果是这样,请查看这篇文章,其中包含一个如何使用filter dates but maintain the running sum in Tableau的示例。

票数 0
EN

Stack Overflow用户

发布于 2020-06-13 23:59:53

以下是两种方法,这两种方法都涉及到编辑数据源的物理层

通过编写自定义SQL

  • a self join
  • a SQL windowing query (又称分析查询)。

Andy Granowitz写了一个清晰的example,用SQL语言展示了这两种方法。(我将他的SQL复制到这个答案的底部,以防该链接消失,但建议阅读他的帖子以获得更好的解释。)

在这种情况下,我认为自连接更容易一些,因为您不必编写任何SQL,但在更复杂的情况下,窗口查询方法将为您提供更大的灵活性。如果您有非常大的数据集,窗口查询可能会更有效。请注意,有些数据库可能还不支持窗口查询,但大多数都支持。如果使用的是CSV或Excel文件,则可能必须将其转换为Hyper extract,然后才能使用自定义SQL。

要在Tableau中定义自连接,请编辑数据源,双击您的表以放到物理层,然后再次将您的表拖到画布上。然后定义您的加入条件。自定义SQL可用于大多数数据库,但可能不能用于文本文件。请参阅帮助。

在大多数情况下,最好避免自定义SQL,而让Tableau生成优化的SQL。Tableau经常被高级用户描述为“一个附加了图表包的SQL生成器”,以强调它非常擅长生成SQL。新用户经常坚持手工编写SQL,因为他们已经习惯了,这牺牲了Tableau带来的一些主要好处。Tableau已经发展到很少需要编写自定义SQL的地步,但仍然有一些重要的用例。利用窗口查询是定制SQL的一个很好的用例。另一种情况是,当你想使用数据库提供的非标准特性或函数时(但在这种情况下,首先尝试使用Tableau中的原始SQL函数-它允许您只嵌入自定义SQL的一个片段)

表计算在很多方面都受到SQL窗口查询的启发,而且通常又快又容易(但有时并不那么容易)。表计算是在客户端计算的,这取决于您是否已经获取了数据,这可能会提高性能,也可能会影响性能。

hyper API现在支持一些窗口查询。希望有一天,在没有自定义SQL的情况下,可以从Tableau轻松地访问它们。

SQL for self-join方法

代码语言:javascript
运行
复制
select 
  a.date,
  sum(b.sales) as cumulative_sales
from sales_table a 
join sales_table b on a.date >= b.date
group by a.date

用于窗口查询方法的SQL

代码语言:javascript
运行
复制
select
  date,
  sum(sales) over (order by date rows unbounded preceding) as cumulative_sales
from sales_table
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62356682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档