数据表A
id type area num1 num2 num3
11 A AA 3 8 5
13 B BB 1 5 1
14 B CC 3 4 4
15 A AA 3 3 5
16 C CC 2 4 8
17 C DD 3 1 6
18 D DD 5 4 7
19 D BB 3 4 3
要的结果是这样的
id type area num1 num2 num3
11 A AA 3 8 5
13 B BB 1 5 1
14 B CC 3 4 4
15 A AA 3 3 5
16 C CC 2 4 8
17 C DD 3 1 6
18 D DD 5 4 7
19 D BB 3 4 3
Total 23 33 39
求大神指教,我用rollup不行啊,rollup会对每种类型都分开统计,而我不需要类型分开谢谢
id type area num1 num2 num3
11 A AA 3 8 5
13 B BB 1 5 1
14 B CC 3 4 4
15 A AA 3 3 5
16 C CC 2 4 8
17 C DD 3 1 6
18 D DD 5 4 7
19 D BB 3 4 3
要的结果是这样的
id type area num1 num2 num3
11 A AA 3 8 5
13 B BB 1 5 1
14 B CC 3 4 4
15 A AA 3 3 5
16 C CC 2 4 8
17 C DD 3 1 6
18 D DD 5 4 7
19 D BB 3 4 3
Total 23 33 39
求大神指教,我用rollup不行啊,rollup会对每种类型都分开统计,而我不需要类型分开谢谢
解决方案 »
- 获取case when的值 在线等。。
- sql优化,数据只有上万条
- 求优化
- oracle rownum分页排序问题
- 关于Oracle中截取子串
- 查询时间出现偏差的情况有没有谁碰上过?
- oracle 小机上添加裸设备时出错,请高手帮帮看看日志,指点迷津!急,在线等。。。。。。。。。。。。
- PL/SQL设置断点的问题
- 我用PL/SQL写了个存储过程,按下F9调试那个存储过程时提示如下错误:ORA-01480 STR赋值变量缺少空后缀。
- 监听服务(OracleOraHome81TNSListener)在服务栏里一刷新就没有了,连停止、已启动或都已禁用这个几个字都没有了。
- oracle获得xml节点属性值
- 这个SQL列转行怎么写?
select id,type,area,num1,num2,num3
from 你的表
union
select null,null,null,sum(num1),sum(num2),sum(num3)
from 你的表
with t1 as
(
select 11 c1,'a' c2,'aa' c3,3 c4,8 c5,5 c6 from dual
union all
select 13 c1,'b' c2,'bb' c3,1 c4,5 c5,1 c6 from dual
union all
select 14 c1,'b' c2,'cc' c3,3 c4,4 c5,4 c6 from dual
)select *
from
(
select c1,c2,c3,sum(c4) c4,sum(c5) c5,sum(c6) c6
from t1
group by rollup(c1,c2,c3)
) t1
where (c2 is not null and c3 is not null) or c1 is null
c1 c2 c3 c4 c5 c6
------------------------------------------------------
1 11 a aa 3 8 5
2 13 b bb 1 5 1
3 14 b cc 3 4 4
4 7 17 10
(
SELECT 11 id,'A' type,'AA' area,3 num1,8 num2,5 num3 FROM DUAL
UNION ALL
SELECT 13, 'B', 'BB', 1, 5, 1 FROM DUAL UNION ALL
SELECT 14, 'B', 'CC', 3, 4, 4 FROM DUAL UNION ALL
SELECT 15, 'A', 'AA', 3, 3, 5 FROM DUAL UNION ALL
SELECT 16, 'C', 'CC', 2, 4, 8 FROM DUAL UNION ALL
SELECT 17, 'C', 'DD', 3, 1, 6 FROM DUAL UNION ALL
SELECT 18, 'D', 'DD', 5, 4, 7 FROM DUAL UNION ALL
SELECT 19, 'D', 'BB', 3, 4, 3 FROM DUAL
)
SELECT N.ID,
NVL(N.type,M.TYPE) TYPE,AREA,
NVL(NUM1,M.A) NUM1,
NVL(NUM2,M.B) NUM2,
NVL(NUM3,M.C) NUM3
FROM CTE N FULL JOIN
(SELECT 'TOTAL' TYPE, SUM(NUM1) A,SUM(NUM2) B,SUM(NUM3) C
FROM CTE) M
ON N.TYPE=M.TYPE
结果如下:
19 D BB 3 4 3
18 D DD 5 4 7
17 C DD 3 1 6
16 C CC 2 4 8
15 A AA 3 3 5
14 B CC 3 4 4
13 B BB 1 5 1
11 A AA 3 8 5
TOTAL 23 33 39