SQL报表之行列变换
来源:互联网 发布:js求两个数最大公约数 编辑:程序博客网 时间:2024/05/18 07:06
/*交叉报表*/
/*行列互换*/
create table pivot
(
year int,
quarter int,
amount real
)
--季度营业额表
insert into pivot values (1990, 1, 1.1)
insert into pivot values (1990, 2, 1.2)
insert into pivot values (1990, 3, 1.3)
insert into pivot values (1990, 4, 1.4)
insert into pivot values (1991, 1, 2.1)
insert into pivot values (1991, 2, 2.2)
insert into pivot values (1991, 3, 2.3)
insert into pivot values (1991, 4, 2.4)
select * from pivot
--原始结果集
select year,
sum(case quarter when 1 then amount else 0 end) as Q1,
sum(case quarter when 2 then amount else 0 end) as Q2,
sum(case quarter when 3 then amount else 0 end) as Q3,
sum(case quarter when 4 then amount else 0 end) as Q4
from pivot
group by year
--行列互换后的结果集
/*
case:如果季度的值为1,则转换为amount列,否则计0,并将次列起别名为Q1
sum:求和,若符合条件则对该季度求和,不符合聚合0,
为0处不可为null,null将被sum和avg等聚合函数忽略,造成错误结果
*/
/*行列互换*/
create table pivot
(
year int,
quarter int,
amount real
)
--季度营业额表
insert into pivot values (1990, 1, 1.1)
insert into pivot values (1990, 2, 1.2)
insert into pivot values (1990, 3, 1.3)
insert into pivot values (1990, 4, 1.4)
insert into pivot values (1991, 1, 2.1)
insert into pivot values (1991, 2, 2.2)
insert into pivot values (1991, 3, 2.3)
insert into pivot values (1991, 4, 2.4)
select * from pivot
--原始结果集
select year,
sum(case quarter when 1 then amount else 0 end) as Q1,
sum(case quarter when 2 then amount else 0 end) as Q2,
sum(case quarter when 3 then amount else 0 end) as Q3,
sum(case quarter when 4 then amount else 0 end) as Q4
from pivot
group by year
--行列互换后的结果集
/*
case:如果季度的值为1,则转换为amount列,否则计0,并将次列起别名为Q1
sum:求和,若符合条件则对该季度求和,不符合聚合0,
为0处不可为null,null将被sum和avg等聚合函数忽略,造成错误结果
*/
- SQL报表之行列变换
- SQL动态行列变换
- 行列变换、PL/SQL游标加锁
- sql 行列转化/交叉报表的实现
- 行列变换
- 行列变换
- sql之行列转换备份
- SQL 二维交叉报表 分类统计(行列转换)
- 数组的行列变换
- PostgreSQL行列变换
- Matlab矩阵行列变换
- SQL 行列互变之终极方法
- SQL面试题之行列转换
- SQL面试题之行列转换
- poj 3735 矩阵行列变换
- SQL报表之户籍管理实例
- MS-SQLServer 2000 T-SQL 交叉报表(行列互换) 交叉查询 旋转查询
- MS-SQLServer 2000 T-SQL 交叉报表(行列互换) 交叉查询 旋转查询
- SQL之waitfor & case
- 图文描述Vs2005制作WEB应用程序安装包的方法[E8.Net正式用户可以找我们获取全部代码参考]
- SQL函数
- Oracle中查询日期类型
- Iris动画效果的代码
- SQL报表之行列变换
- SQL用check约束实现非工作时间不得修改数据
- SQL小写金额换大写金额
- SQL存储过程大全
- 流氓武汉电信也开始推送广告(系统右下角弹出UUSee广告的真正原因及解决方法)
- SQL安全性相关
- Zlib 简单的使用
- SQL高级查询相关
- P6Spy源码分析,理解跟踪SQL的工作原理