在Postgres中生成计算字段以在Tableau中使用

时间:2014-08-26 23:24:06

标签: sql postgresql calculated-columns sql-view tableau

我在PostgreSQL数据库中工作,该数据库包含多个表,包括Orders和Customers。我在Tableau中进行了大部分分析,尽管可能(我认为),如果我可以将数据带入Tableau并且已经计算了一些新字段,那将会更容易。

特别想

  1. 在Customers表中添加一个字段,计算客户截至今日()和
  2. 的订单数量
  3. 在订单中添加一个字段,用于说明关联客户截至当前行订单日期的订单数量(基本上是第N个订单'按客户数量计算)。
  4. 最终目标是对新的回头客户进行分析,并根据客户的第一个订单,第五个订单等对订单进行分析。

    我的想法是在连接Tableau之前生成字段并编写计算以填充它们。我没有太多的SQL经验,所以试着了解我的选择是什么。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

除非性能是您的首要要求并且这些计算费用昂贵,否则请 添加列以存储冗余信息。

即使完全是关于性能,MATERIALIZED VIEW通常也是优越的方法,因此您可以将实际信息与冗余的,功能相关的工作表分开。

在所有其他情况下,您宁愿使用VIEW,它会动态计算派生列。这是SQL的标准功能,通常比新手想象的要快。

或者您可以使用函数模拟“计算字段”。出于特殊目的..

答案 1 :(得分:0)

除了创建视图或可能实现的视图外,Tableau还提供了另外一个选项

您可以定义表计算,该计算实际上是对数据库返回的聚合查询结果进行后处理。表计算可能变得非常复杂,也有点复杂,但它们提供的灵活性超出了物化视图的功能。

例如,如果您希望计算考虑Tableau可视化中的过滤器(例如日期范围或限制到某个订单类别),则表格计算可以动态地考虑这些过滤器。或者,如果您希望经常重新排列可视化,按不同维度进行分组,那么表格计算可能比视图更方便。

对于那些不熟悉Tableau的人,表格计算与SQL窗口或分析查询类似,但由客户端执行。表格计算很有用,但需要一些时间来学习。

以下是一些开始的地方

http://www.tableausoftware.com/table-calculations http://www.tableausoftware.com/sites/default/files/pages/table_calcs_in_tableau_6.pdf