表T_TEST的结构式 name(名字) ,accountBank(开户银行),amt(余额)
现在数据如下name accountBank amt
A 农行 100
A 招行 30
A 农行 50
B 招行 1000
B 农行 30
B 招行 20
C 招行 500
D 工行 300
D 工行 600select name,accountBank,sum(amt) group by name,accountBank
现在按名字,银行账户分组汇总后,结果就是
A 农行 150
A 招行 30
B 招行 1020
B 农行 30C 招行 500D 工行 900现在希望这个结果集最总能按名称的总计来排序,就应该是这样的结果集B 招行 1020
B 农行 30 (B的合计是1050 最大)D 工行 900C 招行 500A 农行 150
A 招行 30这种查询在该咋写啊?
现在数据如下name accountBank amt
A 农行 100
A 招行 30
A 农行 50
B 招行 1000
B 农行 30
B 招行 20
C 招行 500
D 工行 300
D 工行 600select name,accountBank,sum(amt) group by name,accountBank
现在按名字,银行账户分组汇总后,结果就是
A 农行 150
A 招行 30
B 招行 1020
B 农行 30C 招行 500D 工行 900现在希望这个结果集最总能按名称的总计来排序,就应该是这样的结果集B 招行 1020
B 农行 30 (B的合计是1050 最大)D 工行 900C 招行 500A 农行 150
A 招行 30这种查询在该咋写啊?
解决方案 »
- oracle10g删除用户,释放硬盘空间
- 求助一条sql语句~
- to_char(sysdate……)的参数设置
- 多个or条件后的排序问题
- Oracle的BLOB类型被Hibernate 3.0 映射为String,如何上传大数据
- 在ORACLE数据库上,如何将BLOB字段用zip算法解压/压缩,将其包装成内嵌函数,之后将内嵌函数和SQL语句结合,详见内容.
- ############高分----sql语句------################
- 帮忙解决一个疑问,顶大家顶一下(给分)...
- 在那里能下载Oracle的FOR 2000的版本??(急急急!!)
- 如何合并两个查询中的记录集为一个记录集?
- oracle中Redo Log File和Online Redo Log File 的区别是什么
- 联合查询问题,急!
(select name,accountBank,sum(amt) total from t_test group by name,accountBank) a,
(select name,sum(amt) ord from t_test group by name) b
where a.name = b.name order by ord desc;
---------- ---------- ----------
A 农行 100
A 招行 30
A 农行 50
B 招行 1000
B 农行 30
B 招行 20
C 招行 500
D 工行 300
D 工行 600已选择9行。已用时间: 00: 00: 00.01
10:28:44 scott@TUNGKONG> select a.name,accountBank,total from
10:28:49 2 (select name,accountBank,sum(amt) total from t_test group by name,accountBank) a,
10:28:49 3 (select name,sum(amt) ord from t_test group by name) b
10:28:49 4 where a.name = b.name order by ord desc;NAME ACCOUNTBAN TOTAL
---------- ---------- ----------
B 招行 1020
B 农行 30
D 工行 900
C 招行 500
A 农行 150
A 招行 30已选择6行。已用时间: 00: 00: 00.01
select 'A' name,'农行' accountBank,100 amt from dual
union all
select 'A' name,'招行' accountBank,30 amt from dual
union all
select 'A' name,'农行' accountBank,50 amt from dual
union all
select 'B' name,'招行' accountBank,1000 amt from dual
union all
select 'B' name,'农行' accountBank,30 amt from dual
union all
select 'B' name,'招行' accountBank,20 amt from dual
union all
select 'C' name,'招行' accountBank,500 amt from dual
union all
select 'D' name,'工行' accountBank,300 amt from dual
union all
select 'D' name,'工行' accountBank,600 amt from dual
)
select a.name,a.accountBank,a.sumat from
(select name,accountBank,sum(amt) sumat from temp group by name,accountBank) a,
(select name,sum(amt) sumamt from temp group by name) b
where a.name = b.name order by sumamt desc