如何将日期信息列合并为一个日期列? (每列目前是不同的日期)

How to combine columns of date information into one date column? (each column is currently a different date)

我有来自 John Hopkins University 2, which I've imported into Tableau 3 的 COVID 数据集。但是,它将每个日期列显示为单独的度量。有没有办法把它合并成一列日期呢?

我尝试使用 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. 不确定为什么每条记录有双行?另外,有没有更简单的方法来代替每天交叉连接?

谢谢!

你的 select:

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

这是造成重复的原因。通常,您只能在 from 子句中使用 join 来创建新行。但是,Postgres 允许(某些)table 返回 select 中的函数——并且这些函数也是行数的倍数。我总是把这样的函数放在 from 子句中以避免这样的问题。

相反,您只需要 t.dateselect.

我也猜你不需要 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;

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

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

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

我希望这个helps.You可以用类似的方式格式化其他列。