Oracle按時間分組統計的sql
oracle 實現按周,月,季度,年查詢統計資料
//按自然周統計
select to_char(date,'iw'),sum()
from
where
group by to_char(date,'iw')
//按自然月統計
select to_char(date,'mm'),sum()
from
where
group by to_char(date,'mm')
//按季統計
select to_char(date,'q'),sum()
from
where
group by to_char(date,'q')
//按年統計
select to_char(date,'yyyy'),sum()
from
where
group by to_char(date,'yyyy')
Oracle 中 IW和WW 有何差別
SQL> select day,
2 to_char(day, 'd'),
3 to_char(day, 'iw'),
4 to_char(day, 'ww')
5 from (select trunc(sysdate, 'year')+level-1 as day from dual connect by level <=8)
6 /
DAY TO_CHAR(DAY,'D') TO_CHAR(DAY,'IW') TO_CHAR(DAY,'WW')
----------- ---------------- ----------------- -----------------
2009-1-1 5 01 01
2009-1-2 6 01 01
2009-1-3 7 01 01
2009-1-4 1 01 01
2009-1-5 2 02 01
2009-1-6 3 02 01
2009-1-7 4 02 01
2009-1-8 5 02 02
IW:ISO標準周
WW:oracle標準周
舉例:
SELECT to_char(to_date('20051203','yyyymmdd'),'WW') "WW03",
to_char(to_date('20051203','yyyymmdd'),'IW') "IW03",
to_char(to_date('20051204','yyyymmdd'),'WW') "WW04",
to_char(to_date('20051204','yyyymmdd'),'IW') "WW04",
to_char(to_date('20051205','yyyymmdd'),'WW') "WW05",
to_char(to_date('20051205','yyyymmdd'),'IW') "WW05"
FROM dual;
Oracle中發現的WW和IW的規律
WW:
每年的1月1日作為當年的第一週的第一天(不管當年的1月1日是星期幾);
比如:2004/01/01 是週四, 在Oracle中被定義為2004年WW的第一週的第一天;
SELECT
TO_CHAR(TO_DATE('20040101','YYYYMMDD'),'YY:WW'),TO_CHAR(TO_DATE('20040107','YYYYMMDD'),'YY:WW'),TO_CHAR(TO_DATE('20040108','YYYYMMDD'),'YY:WW')
FROM DUAL;
IW :
以周別為“主線” ,每年最多可以有53個周B別,但是每年至少要包含52個周別;
如果一年當中第52周別之後至當年的12月31日之間,還有大於或等於4天的話,則定為當年的第53周,否則剩餘這些天數被歸為下一年的第1周;如果在不
足52周別的話,則以下一年的時間來補;每週固定的從週一開始作為本週的第1天,到週日作為本週的第7天;比如:在Oracle中 2006/01/01
依然屬於IW周別 05年的第52周的第7天
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9907339/viewspace-1048055/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql 按著時間分組,每組取 20 條資料SQL
- sql 語言 groupBy 分組統計時間段解決方案SQL
- Oracle時間模型統計SQLOracle模型SQL
- Mysql按時間分組查詢(每天|每月|每年)MySql
- MySQL按時間統計資料MySql
- Sql group by 分組取時間最新的一條資料SQL
- T-sql 根據日期時間 按年份、月份、天來統計SQL
- ORACLE計算2個時間段相差時間小時、分、秒Oracle
- Oracle 分組彙總統計函式的使用Oracle函式
- 查詢統計SQL分組求和使用小技巧SQL
- oracle單表按時間匯出Oracle
- Windows 備份oracle按時間命名WindowsOracle
- 按 host 分組統計檢視 | 全方位認識 sys 系統庫
- 按 file 分組統計檢視 | 全方位認識 sys 系統庫
- 按 user 分組統計檢視|全方位認識 sys 系統庫
- 使用SQL按照區間進行分組SQL
- MySQL按分/時/天/周/月/季度/半年/年分組MySql
- oracle臨時表空間組Oracle
- mongodb分組統計MongoDB
- apache日誌統計 按小時,分鐘統計url訪問次數Apache
- SQL分組SQL
- sql server 計算兩個時間 相差的 幾天幾時幾分幾秒SQLServer
- 統計資料按日期分組,沒有的天補零,什麼辦
- 按小時,分鐘,秒;統計之 round和trunc區別
- PostgreSQL中對日期時間進行分組SQL
- sql統計時間出現斷點的相關情況SQL斷點
- 計算SQL執行時間SQL
- 【SQL*Plus】使用BREAK和COMPUTE在SQL*Plus中得到分組統計結果SQL
- 求一條sql關於按分組重複值不顯示?SQL
- SQL 如何計算每個分組的中位數SQL
- sql 獲取系統時間的函式。SQL函式
- sql分組查詢語句--行內分組(非聚合分組)SQL
- SQL 分組排序group bySQL排序
- Map集合的按時間排序方法排序
- MySQL 多表分組後獲取每一組的時間最大的那條記錄MySql
- oracle查詢sql執行耗時、執行時間、sql_idOracleSQL
- [Shell] awk 統計分組資料
- Linuxls按時間排列Linux