如下表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 补充: 按季度分组还有个比较笨的方法(参考网络资源) select to_char(exportDate,'yyyy'), sum(decode(to_char(exportDate,'mm'),'01',amount,'02',amount,'03',amount,0)) as 第一季, sum(decode(to_char(exportDate,'mm'),'04',amount,'05',amount,'06',amount,0)) as 第二季, sum(decode(to_char(exportDate,'mm'),'07',amount,'08',amount,'09',amount,0)) as 第三季, sum(decode(to_char(exportDate,'mm'),'10',amount,'11',amount,'12',amount,0)) as 第四季 from table1 group by to_char(exportDate,'yyyy'); 年份 第一季 第二季 第三季 第四季 -------------------------------------------------- 2009 0 0 0 68 2010 0 0 49 88 2008 22 81 0 0
oracle 年,季度,月,周,日,分组
猜你喜欢
转载自mxm910821.iteye.com/blog/1827739
今日推荐
周排行