oracle行专列函数
时间: 2023-12-04 18:03:51 浏览: 32
Oracle 行专列函数可以将行数据转换为列数据,常用的函数包括:
1. MAX(CASE WHEN condition THEN value END): 将符合条件的行的某个值转换为一列中的最大值。
2. MIN(CASE WHEN condition THEN value END): 将符合条件的行的某个值转换为一列中的最小值。
3. SUM(CASE WHEN condition THEN value END): 将符合条件的行的某个值转换为一列中的总和。
4. AVG(CASE WHEN condition THEN value END): 将符合条件的行的某个值转换为一列中的平均值。
5. COUNT(CASE WHEN condition THEN value END): 将符合条件的行的某个值转换为一列中的计数值。
在使用这些函数时,需要指定条件和需要转换的值。例如:
SELECT
department,
MAX(CASE WHEN quarter = 'Q1' THEN sales END) AS Q1_sales,
MAX(CASE WHEN quarter = 'Q2' THEN sales END) AS Q2_sales,
MAX(CASE WHEN quarter = 'Q3' THEN sales END) AS Q3_sales,
MAX(CASE WHEN quarter = 'Q4' THEN sales END) AS Q4_sales
FROM
sales_data
GROUP BY
department;
这个查询将 sales_data 表中的销售数据按部门和季度进行分组,并将每个季度的销售额转换为一列中的最大值。