如何巧妙运用 Oracle 的 unpivot 函数

avatar
作者
筋斗云
阅读量:0

Oracle 的 UNPIVOT 函数可以将多个列转换为多行,这样更容易进行数据分析和处理

  1. 创建一个包含多个列的表:
CREATE TABLE sales_data (     product_id NUMBER,     product_name VARCHAR2(50),     sales_2020 NUMBER,     sales_2021 NUMBER ); 
  1. 向表中插入一些示例数据:
INSERT INTO sales_data VALUES (1, 'Product A', 1000, 1200); INSERT INTO sales_data VALUES (2, 'Product B', 800, 900); INSERT INTO sales_data VALUES (3, 'Product C', 1500, 1600); COMMIT; 
  1. 使用 UNPIVOT 函数将销售数据从多列转换为多行:
SELECT * FROM sales_data UNPIVOT (     sales_value FOR sales_year IN (sales_2020 AS '2020', sales_2021 AS '2021') ); 

这将返回以下结果:

PRODUCT_ID PRODUCT_NAME SALES_YEAR SALES_VALUE ---------- ------------ ---------- -----------          1 Product A     2020       1000          1 Product A     2021       1200          2 Product B     2020        800          2 Product B     2021        900          3 Product C     2020       1500          3 Product C     2021       1600 

现在,我们已经成功地将多列的销售数据转换为多行。接下来,你可以对这些数据进行进一步的查询、分析或者报告。

注意:在实际应用中,你可能需要根据自己的需求调整表结构、数据和查询。上面的示例仅用于说明如何使用 UNPIVOT 函数。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!