建立测试环境如下
create table t1
(f1 varchar2(10),
f2 varchar2(10),
v1 integer,
v2 integer);
--插入测试数据
insert into t1
select '北京','1',1,1 from dual
union all
select '北京','2',1,1 from dual
union all
select '北京','1',1,1 from dual
union all
select '北京','2',1,1 from dual
union all
select '上海','1',1,1 from dual
union all
select '上海','',1,1 from dual;
commit;--取得汇总数据
select f1,f2,sum(v1),sum(v2)
from t1
group by rollup(f1,f2);
-----------------------------
1 北京 01 2 2
2 北京 02 2 2
3 北京 4 4
4 上海 01 1 1
5 上海 02 1 1
6 上海 2 2
7 6 6
------------------------------------
我现在想让结果按照“v1的汇总小计”排序,就是希望得到的结果为
4 上海 01 1 1
5 上海 02 1 1
6 上海 2 2 --按照这个结果值排序
1 北京 01 2 2
2 北京 02 2 2
3 北京 4 4 --按照这个结果值排序
-------------------------------------有没有处理办法。
create table t1
(f1 varchar2(10),
f2 varchar2(10),
v1 integer,
v2 integer);
--插入测试数据
insert into t1
select '北京','1',1,1 from dual
union all
select '北京','2',1,1 from dual
union all
select '北京','1',1,1 from dual
union all
select '北京','2',1,1 from dual
union all
select '上海','1',1,1 from dual
union all
select '上海','',1,1 from dual;
commit;--取得汇总数据
select f1,f2,sum(v1),sum(v2)
from t1
group by rollup(f1,f2);
-----------------------------
1 北京 01 2 2
2 北京 02 2 2
3 北京 4 4
4 上海 01 1 1
5 上海 02 1 1
6 上海 2 2
7 6 6
------------------------------------
我现在想让结果按照“v1的汇总小计”排序,就是希望得到的结果为
4 上海 01 1 1
5 上海 02 1 1
6 上海 2 2 --按照这个结果值排序
1 北京 01 2 2
2 北京 02 2 2
3 北京 4 4 --按照这个结果值排序
-------------------------------------有没有处理办法。
解决方案 »
- Sys_Connect_By_Path 在10G 第4版的问题
- 关于oracle编译java死机问题
- 如何实时将oracle表中的数据查询输出到TXT文件中,请高手指点!
- oracle 中怎么用一条update 语句同时 更新两个表
- 我还是不大明白oracle数据库里面的null,如果不做任何处理,vb6.0在读取null数据导入到excel的时候,会乱码是为什么?
- 做过学生成绩管理的进,说到边就有分!
- pl/sql如何实现像%[A-Z]%这样的正则表达式查询?
- 关于字符集的一个疑问!讨论,提出观点者有分,谢谢!(在线)
- 我用oracle8i+win2k 连接数据库出现问题,
- 如何寻找用户密码
- 关于xml的解析问题,急求答案:1,节点值取不出来,2,带namespace如何处理
- 求一SQL语句,时间比较,行列对比
既然需要按照汇总数据排序,那么基本上需要给中间结果一个伪列标识这个汇总数据
with summary as (select f1,f2,v1,v2,sum(v1) v3 over(partition by f1))
select f1,f2,sum(v1),sum(v2),max(v3) v3
from summary
order by v3;