Oracle按不同时间分组统计

Oracle按不同时间分组统计的sql

如下表table1: 
日期(exportDate)               数量(amount) 
--------------                    ----------- 
14-2月 -08                       20 
10-3月 -08                       2 
14-4月 -08                       6 
14-6月 -08                       75 
24-10月-09                      23 
14-11月-09                      45 
04-8月 -10                       5 
04-9月 -10                       44 
04-10月-10                      88 
注意:为了显示更直观,如下查询已皆按相应分组排序 
1.按年份分组 
select to_char(exportDate,'yyyy'),sum(amount) from table1 group by to_char(exportDate,'yyyy'); 
年份      数量 
----------------------------- 
2009    68 
2010    137 
2008    103 
2.按月份分组 
select to_char(exportDate,'yyyy-mm'),sum(amount) from table1 group by to_char(exportDate,'yyyy-mm')
order by to_char(exportDate,'yyyy-mm'); 
月份           数量 
----------------------------- 
2008-02    20 
2008-03    2 
2008-04    6 
2008-06    75 
2009-10    23 
2009-11    45 
2010-08    5 
2010-09    44 
2010-10    88 
3.按季度分组 
select to_char(exportDate,'yyyy-Q'),sum(amount) from table1 group by to_char(exportDate,'yyyy-Q') 
order by to_char(exportDate,'yyyy-Q'); 
季度          数量 
------------------------------ 
2008-1    22 
2008-2    81 
2009-4    68 
2010-3    49 
2010-4    88 
4.按周分组 
select to_char(exportDate,'yyyy-IW'),sum(amount) from table1 group by to_char(exportDate,'yyyy-IW')
order by to_char(exportDate,'yyyy-IW'); 
周             数量 
------------------------------ 
2008-07    20 
2008-11    2 
2008-16    6 
2008-24    75 
2009-43    23 
2009-46    45 
2010-31    5 
2010-35    44 
2010-40    88

出处:http://www.2cto.com/database/201309/243555.html

posted on 2014-04-30 17:15  jack_Meng  阅读(3593)  评论(1编辑  收藏  举报

导航