Oracle pivot & unpivot
发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,pivot & unpivot 11g新特性1 pivot以列-值对的形式出现,典型的行转列报表函数。create table test_demo(id int,name varchar(20),nu
千家信息网最后更新 2025年02月16日Oracle pivot & unpivot
pivot & unpivot 11g新特性
1 pivot
以列-值对的形式出现,典型的行转列报表函数。
create table test_demo(id int,name varchar(20),nums int); ---- 创建表insert into test_demo values(1, '苹果', 1000);insert into test_demo values(2, '苹果', 2000);insert into test_demo values(3, '苹果', 4000);insert into test_demo values(4, '橘子', 5000);insert into test_demo values(5, '橘子', 3000);insert into test_demo values(6, '葡萄', 3500);insert into test_demo values(7, '芒果', 4200);insert into test_demo values(8, '芒果', 5500);commit; select name, sum(nums) from test_demo group by name; select * from (select name, nums fromtest_demo)pivot(sum(nums) for name in('苹果', '橘子', '葡萄', '芒果')); SQL> select * 2 from (select name, nums from test_demo) 3 pivot(sum(nums) 4 for name in('苹果' as "苹果", '橘子', '葡萄', '芒果')); --别名使用 苹果 '橘子' '葡萄' '芒果'---------- ---------- ---------- ---------- 7000 8000 3500 9700
这里再说语法:
pivot聚合函数 for 列名 in 类型 ,其中 in 中可以指定别名,in中还可以指定子查询,比如 select distinct code from customers
2 unpivot
典型的列转行报表函数
create table Fruit(id int,name varchar(20), Q1 int, Q2 int, Q3 int,Q4 int);这里Q1 int, Q2int, Q3 int, Q4 int表示四季度。insert into Fruit values(1,'苹果',1000,2000,3300,5000);insert into Fruit values(2,'橘子',3000,3000,3200,1500);insert into Fruit values(3,'香蕉',2500,3500,2200,2500);insert into Fruit values(4,'葡萄',1500,2500,1200,3500);commit;select * from Fruit; select id , name, quarter, sell from Fruit unpivot (sell for quarterin (q1, q2, q3, q4));
注意:unpivot没有聚合函数,quarter、sell字段也是临时的变量。
这里sell是统计值,quarter表示季度及类型。
执行结果:
SQL> select id , name, quarter, sell from Fruit unpivot (sell forquarter in (q1, q2, q3, q4)); ID NAME QUARTER SELL--------------------------------------- -------------------- ---------------------------------------------- 1 苹果 Q1 1000 1 苹果 Q2 2000 1 苹果 Q3 3300 1 苹果 Q4 5000 2 橘子 Q1 3000 2 橘子 Q2 3000 2 橘子 Q3 3200 2 橘子 Q4 1500 3 香蕉 Q1 2500 3 香蕉 Q2 3500 3 香蕉 Q3 2200 3 香蕉 Q4 2500 4 葡萄 Q1 1500 4 葡萄 Q2 2500 4 葡萄 Q3 1200 4 葡萄 Q4 3500
苹果
橘子
葡萄
芒果
香蕉
函数
典型
别名
报表
类型
变量
四季
字段
季度
定子
形式
特性
结果
语法
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
阜阳公安机关网络安全视频
南邮研究生网络安全
数据库安全防护措施
微容网络技术有限公司
山西储存服务器虚拟主机
安徽工业软件开发服务费
gepia2数据库准不准
中科软是网络安全概念吗
游戏app如何找到后台服务器
软件开发系统与软件开发区别
画画网络安全手抄报
易安卓 服务器
克尔瑞数据库登录网址
服务器域名设置
软件开发喷泉模型图
白皮书网络安全角色列表失败
如何把两个数据库合并
记账软件开发的目的
如何进行网络安全
输入日期看汇总数据库
服务器 多网口
鸠鸠互联网科技公司官网
上海邮乐购网络技术有限公司
ctf网络安全大赛选手
徐汇区即时网络技术造型设计
数据库测评属于哪个安全层面
交通银行软件开发上海面试
软件开发硬件采集
厦门微达人网络技术有限公
江苏服务器电源采购