在Oracle11g之前 我们做统计分析的时候,往往需要这样的需求
select
(select 2 from dual) as aa,
(select 3 from dual) as bb
from dual;
经常写很多的子查询 并且与其他表关联。
以学生表为例(附:该表只是做演示,并未遵循三大范式):
create table StuInfo(id int,stuName varchar(20),stuClass varchar(20));
统计班级学员数量
select stuClass,count(id) as stuNum group by stuClass
现在需要导出的表格是
序号 一年级 二年级 三年级 四年级 五年级
1 98 78 20 10 10
则需要用到11g中的pivot关键字,
select * from (select stuClass,count(id) as stuNum group by stuClass) pivot (count(stuNum) for stuClass in ('一年级','二年级','三年级','四年级','五年级'));
unpivot 行转列
未完待续