Oracle PIVOT 函數是一種將行數據轉換為列數據的方法,它可以讓你在查詢中動態地創建聚合表
基本語法:
SELECT *
FROM (
SELECT column1, column2, column3
FROM table_name
)
PIVOT (
aggregate_function(column3)
FOR column2 IN (value1, value2, ..., valueN)
);
其中:
column1
:用于分組的列。column2
:要轉換為列的列。column3
:要聚合的列。table_name
:要查詢的表名。aggregate_function
:聚合函數,如 COUNT、SUM、AVG 等。value1, value2, ..., valueN
:column2
中的值,這些值將轉換為新的列。使用場景:
示例: 假設我們有一個名為 sales_data 的表,其中包含以下列:employee_id、department 和 salary。我們想要計算每個部門的平均工資,并將結果顯示為一個包含部門和平均工資的表。我們可以使用以下查詢:
SELECT *
FROM (
SELECT department, salary
FROM sales_data
)
PIVOT (
AVG(salary)
FOR department IN ('Sales', 'Marketing', 'IT')
);
這將返回一個包含 Sales、Marketing 和 IT 部門的平均工資的表。