我是Tableau的新手。我已经将表从数据库连接到我的Tableau桌面,如下所示:
我想显示医院的平均费用和患者总数。 在SQL查询中,我可以轻松使用此查询:
select
Hospital,
count(*) as total_patients,
avg(cost) average_cost
from table1
group by hospital
如何在Tableau中对此进行模拟?
谢谢。
答案 0 :(得分:1)
要模拟您的表,请将Hospital
添加到行架子,将Measure Names
添加到列架子,并添加Measure Names
过滤架子。在那里,仅过滤要显示的度量(在这种情况下为Number of records
和cost
)。
最后,将字段Measure values
添加到“文本(商标)”功能区,然后在此处选择所需的聚合(单击成本>>度量>>平均)。
答案 1 :(得分:1)
Tableau默认情况下会生成所谓的聚合查询(也称为分组依据)。您可以从“分析”菜单中进行更改,但无需更改。
您要分组的字段称为“维度”。您正在汇总的字段称为度量。在左侧栏的数据窗格中,字段具有默认角色(维度或度量),但是您可以在任何视图中覆盖字段的角色。
只需将Hospital放在某个架子上,例如Rows,就可以在每个医院的视图中获得一行,然后将度量值放在另一个架子上,选择所需的汇总功能。然后将SUM([记录数])放在列上,将AVG([成本])放在颜色上。您可以重新排列哪些架子上的字段,并且不会更改查询结果,只需重新排列即可—除了Filter和Tooltip架子有些不同。您还可以使用Marks卡顶部的Mark Type来更改演示文稿。
记录数只是一个预定义的等于1的计算字段。因此SUM([记录数])与COUNT(*)相同。 Tableau中没有名为*的字段,但是如果您希望获得相同的效果,则可以使用COUNT(“ *”)。
如@Bob所述,您还可以使用花括号和FIXED,INCLUDE,EXCLUDE语法定义详细程度(LOD)计算。这些是复杂的计算,可让您定义与查询的其余部分结合在一起的子查询,以使您可以进行不同详细程度的计算。它们很有用,但会增加复杂性,并且会降低大型数据集的性能,因此请保留它们以备不时之需,以获取正确的结果。许多(可能是大多数)可视化可以简单地使用尺寸和度量进行定义,而无需编写LOD计算。
我建议避免将所有内容都写为某些人似乎具有很多SQL经验的LOD calc的陷阱。 FIXED LOD calc看起来像SQL,因此从Tableau开始时它们可以是熟悉的实体。
答案 2 :(得分:0)
答案取决于您的视觉效果。如果您打算包括医院和患者,只需创建两个计算字段-
平均费用-
AVG(cost)
患者计数-
count(patient_id)
或者,也许您需要使用Level of Detail Expression.固定的细节表达级别,可以具有比视图更好的细节级别,更粗糙的细节级别或相同的细节级别。汇总细节级别为FIXED的结果的需要取决于视图中的尺寸。-
{ FIXED [hospital], [patient_id] : AVG(cost) } //Avg patient cost by hospital and patient id
{ FIXED [hospital] : COUNT(patient_id) } //# of non distinct patients by hospital