我在Greenplum数据库上有一个如下表结构:
希望将其更改为以下结构,以支持 Tableau 上的饼图。
有人可以帮我吗?谢谢!
我在Greenplum数据库上有一个如下表结构:
希望将其更改为以下结构,以支持 Tableau 上的饼图。
有人可以帮我吗?谢谢!
以下内容适用于预先已知的静态指标集:
SELECT
t.Date,
x.Metric,
CASE x.Metric
WHEN 'metric1' THEN metric1_week
WHEN 'metric2' THEN metric2_week
END AS week_val,
CASE x.Metric
WHEN 'metric1' THEN metric1_13week
WHEN 'metric2' THEN metric2_13week
END AS "13week_val"
FROM
atable AS t
CROSS JOIN
(VALUES ('metric1'), ('metric2')) AS x (Metric)
;
您可以根据上述内容构建一个动态查询,以说明未知数量的指标。为此,您需要读取元数据(可能是INFORMATION_SCHEMA.COLUMNS
系统视图)来构建动态位,即 VALUES 列表和两个 CASE 表达式,然后再将它们嵌入到查询中。
只是为了确保您了解此 Tableau 功能:
一旦您设计了 SQL select 语句,该语句将按照您想要的方式对数据进行反透视,然后您可以通过编辑数据连接并选择“自定义 SQL”选项来告诉 Tableau 使用该语句而不是 select *。
在您的情况下取消透视的通用方法是将几个 select 语句联合在一起,除非您的数据库提供了更有效的替代方案,如 Revanayya 引用的博客条目中所述。