将面向列的表转换为面向行的表

时间:2014-02-19 14:32:36

标签: sql postgresql tableau greenplum

我在Greenplum数据库上有如下表结构: enter image description here

希望将其更改为以下结构,以便在Tableau上支持饼图。

enter image description here

有人能帮帮我吗?谢谢!

4 个答案:

答案 0 :(得分:1)

  1. Export the table to a CSV file
  2. Install the Tableau Excel add-in
  3. 在Excel中打开CSV文件并使用加载项重塑数据

答案 1 :(得分:1)

答案 2 :(得分:0)

只是为了确保您了解此Tableau功能:

一旦您设计了将按照您希望的方式取消数据的SQL select语句,那么您可以通过编辑数据连接并选择Custom SQL选项来告诉Tableau使用它而不是select *。

在你的情况下忽略的通用方法是将几个select语句结合在一起,除非你的数据库提供了一个更有效的选择,如Revanayya所引用的博客条目所述。

答案 3 :(得分:0)

以下内容可用于预先知道的一组静态指标:

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)
;

您可以从上面构建dynamic query来计算未知数量的指标。为此,在将它们嵌入查询之前,您需要读取元数据(可能是INFORMATION_SCHEMA.COLUMNS系统视图)以构建动态位,即VALUES列表和两个CASE表达式。