如何基于单列横向合并WITH子句中的多个数据集
基于Date列横向合并多个CTE数据集的解决方案
现有三个通过WITH子句定义的数据集,每个都包含Date列及对应的数据列,需要基于Date列将它们横向合并,得到包含Date、Data1、Data2、Data3的统一结果集。之前尝试用JOIN实现时,单日期场景正常,但多日期场景下无法正确整理数据,最终通过以下SQL代码解决问题:
WITH cte1 AS ( SELECT '14-Nov' AS Date, 'abc' AS Data1 UNION ALL SELECT '15-Nov', 'def' ), cte2 AS ( SELECT '14-Nov' AS Date, '123' AS Data2 UNION ALL SELECT '15-Nov', '456' ), cte3 AS ( SELECT '14-Nov' AS Date, '!@#' AS Data3 UNION ALL SELECT '15-Nov', '$%^' ) SELECT cte1.Date, cte1.Data1, cte2.Data2, cte3.Data3 FROM cte1 JOIN cte2 ON cte1.Date = cte2.Date JOIN cte3 ON cte1.Date = cte3.Date;
这段代码通过INNER JOIN(SQL中默认JOIN即为INNER JOIN)以cte1的Date列为基准,分别关联cte2和cte3的Date列,确保只有在三个数据集里都存在的Date才会被纳入结果,同时将对应的数据列横向拼接在一起,完美适配多日期场景的合并需求。
内容的提问来源于stack exchange,提问作者Indu
相关产品推荐
相关产品推荐

