oracle中pivot函数用法
一、pivot函数概述
Pivot函数是Oracle数据库中提供的一种功能,它可以用来分析表格数据,通过移动数据行对数据进行重新排列,使数据变得更加清晰、易懂。Pivot函数最常用的场景是处理单表中多行、多列的转换,将多行、多列的数据转换成一行多列,用以解决复杂查询,节约查询时间的问题。
二、Pivot函数语法
Pivot函数的语法如下
pivot_clause::=
[agg_func (column_name) ]
FOR pivot_column IN (pivot_value_list)
(agg_func)是聚合函数,可以是AVG, SUM, MAX, MIN等;
【column_name】是查询结果集返回的列;
【pivot_column】是要旋转的列
【pivot_value_list】是多个值的列表,这些值就是新的列名,可以指定一个或多个新的列名,这些列的返回值就是旋转前查询结果聚合值。
三、使用Pivot函数
假设现有一张查询结果表,如下:
City      Product    Sales
Beijing    Pen        10
Beijing    Pencil    20
Beijing    Ruler      30
Shanghai  Pen        40
Shanghai  Pencil    50
Shanghai  Ruler      60
想要将上面结果变更为:
City      Pen    Pencil    Ruler
Beijing  10      20        30
Shanghai  40      50        60
可以使用下面的语句实现:
select *
from
select city, product, sales
from tablename
pivot
sum(sales)
for product in ( 'Pen' as pen, 'Pencil' as pencil, 'Ruler' as ruler)
执行结果为:
City      Pen    Pencil    Ruler
oracle 时间转换Beijing  10      20        30
Shanghai  40      50        60
四、优点
1、对单表多行、多列的转换,将多行、多列的数据转换成一行多列,能够有效解决复杂查询,节约查询时间;
2、Pivot的结果是态的,可以根据变化的需求。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。