一、描述
注意:TCHouse-X 的 UNPIVOT IN 子句中不支持字符串别名(如 AS 'Jan'),需要使用标识符别名(如 AS Jan)。
二、示例
— 基本用法: 无别名SELECT * FROM unpivot_monthly UNPIVOT ( revenue FOR month IN (jan_revenue, feb_revenue, mar_revenue));– 标识符别名: AS Jan / AS Feb / AS Mar (字符串别名不支持)SELECT * FROM unpivot_monthly UNPIVOT ( revenue FOR month IN (jan_revenue AS Jan, feb_revenue AS Feb, mar_revenue AS Mar));– 等价手动实现: UNION ALL 方式SELECT product, month, revenue FROM ( SELECT product, 'Jan' AS month, jan_revenue AS revenue FROM unpivot_monthly UNION ALL SELECT product, 'Feb', feb_revenue FROM unpivot_monthly UNION ALL SELECT product, 'Mar', mar_revenue FROM unpivot_monthly);
测试数据:
CREATE EXTERNAL TABLE unpivot_monthly (product STRING, jan_revenue INT, feb_revenue INT, mar_revenue INT) USING PARQUET LOCATION 'cosn://<your_cos_bucket>/<your_file_path>';INSERT INTO unpivot_monthly VALUES ('A',100,200,150),('B',80,180,220);