如何利用 Oracle unpivot 函数实现数据透视

avatar
作者
猴君
阅读量:0

Oracle UNPIVOT 函数可以将多个列的数据转换为行

  1. 首先,假设您有一个名为 SALES_DATA 的表,其中包含以下数据:
PRODUCT | JAN_SALES | FEB_SALES | MAR_SALES ---------|------------|-----------|----------- A        | 100        | 200       | 300 B        | 400        | 500       | 600 
  1. 使用 UNPIVOT 函数将数据从列转换为行:
SELECT PRODUCT, MONTH, SALES FROM SALES_DATA UNPIVOT (SALES FOR MONTH IN (JAN_SALES AS 'Jan', FEB_SALES AS 'Feb', MAR_SALES AS 'Mar')); 

这将返回以下结果:

PRODUCT | MONTH | SALES ---------|-------|------- A        | Jan   | 100 A        | Feb   | 200 A        | Mar   | 300 B        | Jan   | 400 B        | Feb   | 500 B        | Mar   | 600 

在此示例中,我们使用 UNPIVOT 子句将 JAN_SALES、FEB_SALES 和 MAR_SALES 列转换为行。UNPIVOT 子句中的 FOR 子句定义了新的 MONTH 列,该列包含原始列名(‘Jan’、‘Feb’ 和 ‘Mar’)。SALES 列包含这些月份的销售额。

通过使用 Oracle UNPIVOT 函数,您可以轻松地将多列数据转换为行格式,从而实现数据透视。

广告一刻

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