如何编写PostgreSQL与Python语句将原始表清洗转换为目标结果表?
PostgreSQL拆分日期字符串并关联user_id的解决方法
假设你的原始表结构类似这样:
user_id:用户唯一标识dates:存储多个日期的字符串字段(例如用逗号分隔:'2024-01-01, 2024-01-03, 2024-01-05')
要实现每个user_id对应拆分后的单个日期,只需要在查询中保留user_id,同时对dates字段执行拆分+清洗操作即可,核心SQL示例如下:
SELECT user_id, trim(unnest(string_to_array(dates, ','))) AS single_date FROM 你的原始表名;
关键说明:
string_to_array(dates, ','):把日期字符串按逗号拆分成数组unnest(...):把数组的每个元素拆分成单独的行trim(...):去除每个日期字符串前后的空格(如果你的分隔符后有空格的话)
进阶处理(可选):
如果存在dates字段为空或拆分后出现空值的情况,可以添加过滤条件避免无效行:
SELECT user_id, trimmed_date AS single_date FROM 你的原始表名, unnest(string_to_array(dates, ',')) AS raw_date, trim(raw_date) AS trimmed_date WHERE trimmed_date <> ''; -- 过滤掉空的日期行
内容的提问来源于stack exchange,提问作者Mela
相关产品推荐
相关产品推荐

