Oracle 按各種時間分組統計的sql

2021-08-30 23:25:01 字數 2572 閱讀 3215

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

order by to_char(exportdate,'yyyy');

年份      數量

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

2008    103

2009    68

2010    137

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按不同時間分組統計

oracle按不同時間分組統計的sql 如下表table1 日期 exportdate 數量 amount 14 2月 0820 10 3月 082 14 4月 086 14 6月 0875 24 10月 0923 14 11月 0945 04 8月 105 04 9月 1044 04 10月 10...

Oracle 按時間段分組統計

想要按時間段分組查詢,首先要了解level,connect by,oracle時間的加減.關於level這裡不多說,我只寫出乙個查詢語句 sql view plain copy level 是乙個偽例 select level from dual connect bylevel 10 結果 1 2 ...

MySQL 按天分組統計

select date format c.consumecjtime y m d as day sum c.consumetotalprice as totalprice from consume as c where c.consumecjtime 2018 03 27 and c.consume...