当前位置:数据库 > Oracle >>

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

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

 


CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,