IT貓撲網:您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置: 首頁數(shù)據庫Oracle → Oracle按時間分組統(tǒng)計的sql

Oracle按時間分組統(tǒng)計的sql

時間:2015-06-28 00:00:00 來源:IT貓撲網 作者:網管聯(lián)盟 我要評論(1)

  如下表table1:

  日期(exportDate)?? 數(shù)量(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');

  年份????? 數(shù)量

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

  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');

  月份???? 數(shù)量

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

  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');

  季度??? 數(shù)量

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

  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');

  周 數(shù)量

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

  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

相關閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據庫實例的控制文件 誤刪Oracle數(shù)據庫實例的控制文件 為UNIX服務器設置Oracle全文檢索 為UNIX服務器設置Oracle全文檢索

相關下載

    人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據處理 Oracle刪除表的幾種方法