资源描述:
《oracle按时间分组统计的sql》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、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
2、 45 04-8月-10 5 04-9月-10 44 04-10月-10 88 注意:为了显示更直观,如下查询已皆按相应分组排序 1.按年份分组 selectto_char(exportDate,'yyyy'),sum(amount)fromtable1groupbyto_char(exportDate,'yyyy'); 年份 数量 ----------------------------- 2009 68 20
3、10 137 2008 103 2.按月份分组 selectto_char(exportDate,'yyyy-mm'),sum(amount)fromtable1groupbyto_char(exportDate,'yyyy-mm') orderbyto_char(exportDate,'yyyy-mm'); 月份 数量 ----------------------------- 2008-02 20 2008-03 2 2008-04 6 2008-06 75 2009-10 23 2009-11 45 2010-
4、08 5 2010-09 44 2010-10 88 3.按季度分组 selectto_char(exportDate,'yyyy-Q'),sum(amount)fromtable1groupbyto_char(exportDate,'yyyy-Q') orderbyto_char(exportDate,'yyyy-Q'); 季度 数量 ------------------------------ 2008-1 22 2008-2 81 2009-4 68 2010-3 49 2010-4 88 4.按周分组 sel
5、ectto_char(exportDate,'yyyy-IW'),sum(amount)fromtable1groupbyto_char(exportDate,'yyyy-IW') orderbyto_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
6、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'
7、,amount,0))as第三季, sum(decode(to_char(exportDate,'mm'),'10',amount,'11',amount,'12',amount,0))as第四季 fromtable1 groupbyto_char(exportDate,'yyyy'); 年份 第一季 第二季 第三季 第四季 ----------------------