【问题标题】:How to combine columns of date information into one date column? (each column is currently a different date)如何将日期信息列合并为一个日期列? (每列当前是不同的日期)
【发布时间】:2020-06-05 11:27:20
【问题描述】:

我有来自 John Hopkins University2 的这个 COVID 数据集,我已将其导入 Tableau 3。但是,它将每个日期列显示为单独的度量。有没有办法把它组合成一列日期呢?

我尝试使用 SQL 对数据集进行反透视:

  1. 我使用 pgfutter 将 JHU 网站的 .csv 文件导入到 PostgreSQL 中
  2. 然后在 PostgreSQL 中显示为 4
  3. 我尝试在前 2 天使用此代码取消透视数据。
select province_state, country_region, lat, long, date(generate_series('2020-01-22', '2020-01-23', '1 day'::interval)), new_cases
from time_series_covid19_confirmed_global
    cross join lateral (
        values ('2020-01-22',_1_22_20),('2020-01-23',_1_23_20)) as t(date,new_cases) 
group by date, country_region, province_state, lat, long, new_cases
order by date, country_region, province_state;
  1. This was the output. 不确定为什么每条记录有双行?另外,有没有更简单的方法来代替每天交叉加入?

谢谢!

【问题讨论】:

  • Tableau 可以轻松为您透视数据。在 Tableau 帮助中阅读有关旋转的信息。对于复杂的情况,您可以使用 Tableau Prep Builder 来指定您的数据透视。
  • @AlexBlakemore 谢谢!我很晚才知道 Tableau 允许旋转(我目前是一个非常新的用户,拥有所有这些工具哈哈)。我现在只是在该步骤的数据准备部分寻找一种有效执行此操作的方法,以便它可以轻松流入 Tableau :)

标签: python sql postgresql tableau-api


【解决方案1】:

你的select中有这个:

date(generate_series('2020-01-22', '2020-01-23', '1 day'::interval))

这导致了重复。通常,您只能在from 子句中使用joins 创建新行。但是,Postgres 允许select 中的(某些)表返回函数——这些函数也是行数的倍数。我总是将这些函数放在from 子句中以避免此类问题。

相反,您只需要select 中的t.date

我也猜你不需要group by

select province_state, country_region, lat, long, t.date, new_cases
from time_series_covid19_confirmed_global cross join lateral
     (values ('2020-01-22'::date, _1_22_20),('2020-01-23', _1_23_20)
     ) t(date, new_cases) 
order by date, country_region, province_state;

【讨论】:

  • 感谢您的解释!无论如何,SQL 中是否可以有效地运行它而不必输入每个日期?其他人建议使用 R,但我还没有学习 R。这可以在 Python 中使用吗?
  • @YahNahHah 。 . .并不真地。但我可能会建议您调查 Google BigQuery 中的 covid 数据集。那里的数据有多种格式。
  • 知道了,会检查的。再次感谢!
【解决方案2】:

您可以使用 Pivot 在 Tableau 本身中执行此操作。我下载了你的数据并在我的画面中尝试过。请按照截图-

  • 第 1 步 选择您希望旋转的所有列并右键单击此处,然后选择“将数据添加到 Pivot”

  • 第 2 步 可以在表格末尾找到透视列(通常),您可以像我在此屏幕截图中所做的那样轻松重命名它

我希望这会有所帮助。您可以以类似的方式格式化其他列。

【讨论】:

    猜你喜欢
    • 2019-09-16
    • 1970-01-01
    • 2012-08-19
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2015-12-23
    • 1970-01-01
    相关资源
    最近更新 更多