有一张表tbinfo,关键字段部门dname,发布时间ctime
数据类似如下:
dname | ctime |
部门1 | 2012-11-20 |
部门1 | 2012-11-30 |
部门2 | 2012-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中的分组方式是固定的,无法兼顾。