如何将日期信息列组合成一个日期列(每列当前都是不同的日期)

oyxsuwqo  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(679)

我有来自约翰霍普金斯大学的covid数据集2,我已经导入到表3中。但是,它将每个日期列显示为单独的度量值。有没有办法把它合并成一列日期呢?
我尝试使用sql取消激活数据集:
我使用pgfutter将.csv文件从jhu网站导入postgresql
这在postgresql中显示为4
前两天我试着用这个代码解压数据。

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;

这就是结果。不确定为什么每个记录有两行?还有,有没有一个更简单的方法来代替每天交叉加入?
谢谢您!

bbmckpt7

bbmckpt71#

你把这个放在你的口袋里 select :

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

这是造成重复的原因。通常,只能使用创建新行 join 他在房间里 from 条款。但是,postgres允许在 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;
3j86kqsm

3j86kqsm2#

您可以通过使用pivot在tableau本身中实现这一点。我下载了你的数据,在我的桌面上试了试。请按照截图操作-
步骤1选择所有要透视的列,右键单击此处所示,然后选择“将数据添加到透视”

步骤2数据透视列可以在表的末尾找到(通常),您可以像我在这个屏幕截图中所做的那样轻松地重命名它

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

相关问题