Oracle按日期季度查询
如下表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
转自 http://www.233.com/oracle/zonghe/20101026/114104335.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。