oracle中求分组统计求总和与最大值

有一张表tbinfo,关键字段部门dname,发布时间ctime

数据类似如下:

 

dnamectime
部门12012-11-20
部门12012-11-30
部门22012-11-30

现要求统计每个月的总信息量,与每个月内各部门之间相比最大信息量。

 

本人想到的是

select ym,sum(infocount) total,max(infocount) maxcount from (

select to_char(ctime,'yyyymm') ym,dname,count(*) infocount from tbinfo group by to_char(ctime,'yyyymm'),dname

) group by ym order by ym

 

 

可以不使用用子查询查出相同结果吗?

不可以,因为需要两种分组方式,一种是根据ym分组,另一种是根据ym和dname分组。一个select中的分组方式是固定的,无法兼顾。