如何在tableau工作表中模拟SQL group by?

如何在tableau工作表中模拟SQL group by?,sql,group-by,tableau-api,Sql,Group By,Tableau Api,我是个新手。我已将一个表从数据库连接到我的tableau桌面,如下所示: 我想展示基于医院的平均成本和患者总数。 在SQL查询中,我可以轻松使用此查询: select Hospital, count(*) as total_patients, avg(cost) average_cost from table1 group by hospital 我如何在tableau中模拟这一点 谢谢。答案取决于你的视觉效果。如果计划包括医院和患者,只需创建两个计算字段- 平均成本- AVG(

我是个新手。我已将一个表从数据库连接到我的tableau桌面,如下所示:

我想展示基于医院的平均成本和患者总数。 在SQL查询中,我可以轻松使用此查询:

select 
  Hospital,
  count(*) as total_patients,
  avg(cost) average_cost
from table1
group by hospital
我如何在tableau中模拟这一点


谢谢。答案取决于你的视觉效果。如果计划包括医院和患者,只需创建两个计算字段-

平均成本-

AVG(cost)
病人数-

count(patient_id)
或者,可能需要使用固定的细节级别表达式可以具有比视图更精细的细节级别、更粗糙的细节级别或相同的细节级别。聚合固定详细级别的结果的需要取决于视图中的维度。-

{ 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

答案取决于你的视觉。如果计划包括医院和患者,只需创建两个计算字段-

平均成本-

AVG(cost)
病人数-

count(patient_id)
或者,可能需要使用固定的细节级别表达式可以具有比视图更精细的细节级别、更粗糙的细节级别或相同的细节级别。聚合固定详细级别的结果的需要取决于视图中的维度。-

{ 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

要模拟表格,请将医院添加到行工具架,将度量值名称添加到列工具架,将度量值名称添加到筛选工具架。在这里,只过滤要在这种情况下显示的度量、记录数和成本


最后,将字段度量值添加到文本标记工具架,然后在那里选择所需的聚合,单击成本>>度量>>平均值。

要模拟您的表,请将医院添加到行工具架,将度量值名称添加到列工具架,并将度量值名称添加到筛选工具架。在这里,只过滤要在这种情况下显示的度量、记录数和成本


最后,将字段度量值添加到文本标记工具架,然后在那里选择所需的聚合,单击cost>>Measure>>Average。

Tableau默认情况下生成它称为聚合aka组的查询。您可以从“分析”菜单更改,但很少需要更改

要按其分组的字段称为维度。正在聚合的字段称为度量值。在左侧栏的“数据”窗格中,字段具有默认角色维度或度量值,但您可以在任何视图中替代字段的角色

只需将Hospital放在某个架子上,比如说行,就可以在viz per Hospital中获得一行,然后将度量值放在另一个架子上,选择所需的聚合函数。然后将SUM[记录数]放在列上,AVG[成本]放在颜色上。您可以重新排列哪些字段位于哪些工具架上,并且不会更改查询结果,只需更改表示-除了过滤器和工具提示工具架,它们有些不同。您还可以使用标记卡顶部的标记类型来更改演示文稿

记录数只是一个预定义的计算字段,等于1。所以SUM[记录数]与COUNT*相同。在Tableau中没有名为*的字段,但是如果您希望获得相同的效果,可以使用COUNT*

正如@Bob所提到的,您还可以使用大括号和FIXED、INCLUDE、EXCLUDE语法定义详细级别LOD计算。这些是复杂的计算,您可以定义子查询,这些子查询与查询的其余部分连接起来,以允许您在不同的详细程度上进行计算。它们很有用,但会增加复杂性,并会降低大型数据集的性能,因此请保留它们,以便在需要时获得正确的结果。许多可能是大多数可视化都可以简单地使用维度和度量来定义,而无需编写LOD计算


我建议避免将所有内容都作为LOD计算来编写的陷阱,有些人在拥有大量手工编写SQL的经验时似乎会落入这种陷阱。固定LOD计算看起来像SQL,因此在开始使用Tableau时,它们可能是一个熟悉的实体。

Tableau在默认情况下生成它所称的聚合aka组查询。您可以从“分析”菜单更改,但很少需要更改

要按其分组的字段称为维度。正在聚合的字段称为度量值。在左侧栏的“数据”窗格中,字段具有默认角色维度或度量值,但您可以在任何视图中替代字段的角色

只需将Hospital放在某个架子上,比如说行,就可以在viz per Hospital中获得一行,然后将度量值放在另一个架子上,选择所需的聚合函数。然后将SUM[记录数]放在列上,AVG[成本]放在颜色上。您可以重新排列哪些字段位于哪些工具架上,并且不会更改查询结果,只需更改表示-除了过滤器和工具提示工具架,它们有些不同。您还可以使用标记卡顶部的标记类型来更改演示文稿

记录数只是一个预定义的计算字段,等于1。所以SUM[记录数]与COUNT*相同。有 在Tableau中没有名为*的字段,但如果您希望获得相同的效果,可以使用COUNT*

正如@Bob所提到的,您还可以使用大括号和FIXED、INCLUDE、EXCLUDE语法定义详细级别LOD计算。这些是复杂的计算,您可以定义子查询,这些子查询与查询的其余部分连接起来,以允许您在不同的详细程度上进行计算。它们很有用,但会增加复杂性,并会降低大型数据集的性能,因此请保留它们,以便在需要时获得正确的结果。许多可能是大多数可视化都可以简单地使用维度和度量来定义,而无需编写LOD计算

我建议避免将所有内容都作为LOD计算来编写的陷阱,有些人在拥有大量手工编写SQL的经验时似乎会落入这种陷阱。固定LOD计算看起来像SQL,所以在开始使用Tableau时,它们可能是一个熟悉的实体