我如何编写一个PostgreSQL和Python命令,从清理这个原始表到结果表,如下所示?

m1m5dgzv  于 2023-01-13  发布在  PostgreSQL
关注(0)|答案(1)|浏览(111)

在PostgreSQL中,我尝试了trim(unnest(string_to_array函数来清理和分配行,但是它不会将每个值分配给其他值(user_id和dates)。

up9lanfz

up9lanfz1#

假设dates定义为jsonbuser_id定义为int[],您可以执行以下操作:

select u.user_id, 
       d.dates,
       t."type", 
       t.time_start, 
       t.time_end
from the_table t
  cross join unnest(t.user_id) as u(user_id)
  cross join jsonb_array_elements_text(t.dates) as d(dates)
order by u.user_id, d.date

如果dates不是jsonb列,则需要对其进行强制转换:jsonb_array_elements_text(t.dates::jsonb)
Online example

相关问题