如下表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

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


1.按年份分组

  select to_char(exportDate,‘yyyy’),sum(amount) from table1 group by to_char(exportDate,‘yyyy’);

  年份 数量

  -----------------------------

  2009 68

  2010 137

  2008 103


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