我在PostgreSQL数据库中工作,该数据库包含多个表,包括Orders和Customers。我在Tableau中进行了大部分分析,尽管可能(我认为),如果我可以将数据带入Tableau并且已经计算了一些新字段,那将会更容易。
特别想
最终目标是对新的回头客户进行分析,并根据客户的第一个订单,第五个订单等对订单进行分析。
我的想法是在连接Tableau之前生成字段并编写计算以填充它们。我没有太多的SQL经验,所以试着了解我的选择是什么。有什么建议吗?
答案 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