Oracle數(shù)據(jù)庫(kù)中如何按天、周、月、季、年統(tǒng)計(jì)數(shù)據(jù)
簡(jiǎn)介:
oracle實(shí)現(xiàn)按照天、周、月、季、年進(jìn)行數(shù)據(jù)統(tǒng)計(jì),在實(shí)際業(yè)務(wù)場(chǎng)景中如 "報(bào)表之類" 、"財(cái)務(wù)業(yè)務(wù)的往來(lái)" 等等,業(yè)務(wù)往往需要我們統(tǒng)計(jì)整年 或 整月的數(shù)據(jù)等,下面我們直入主題。
說(shuō)明:
原始數(shù)據(jù)

一、按天查詢
1、片段
select to_char(x.time, 'yyyy-mm-dd') as day, count(1), sum(x.sum) from XIAO x where to_char(x.time, 'yyyy-mm-dd') = '2023-04-23' group by to_char(x.time, 'yyyy-mm-dd') order by to_char(x.time, 'yyyy-mm-dd')
2、結(jié)果集
day 統(tǒng)計(jì)2023-04-23 號(hào),count(1) 統(tǒng)計(jì)2023-04-23 號(hào)有兩條數(shù)據(jù),sum 統(tǒng)計(jì)2023-04-23兩條數(shù)據(jù)個(gè)數(shù)相加。

二、按周查詢
1、片段
select to_char(x.time, 'yyyy') as week,to_char(x.time, 'IW'), count(1) from XIAO x where to_char(x.time, 'yyyy') = '2023' group by to_char(x.time, 'yyyy'),to_char(x.time, 'IW') order by to_char(x.time, 'yyyy'),to_char(x.time, 'IW')
2、結(jié)果集

三 、按月度查詢
1、片段
select to_char(x.time, 'yyyy-MM') as month, count(1) from XIAO x where to_char(x.time, 'yyyy') = '2023' group by to_char(x.time, 'yyyy-MM') order by to_char(x.time, 'yyyy-MM')
2、結(jié)果集

四、按季統(tǒng)計(jì)
1、片段
select to_char(x.time, 'yyyy') as quarter,to_char(x.time, 'Q'), count(1) from XIAO x where to_char(x.time, 'yyyy') = '2023' group by to_char(x.time, 'yyyy'),to_char(x.time, 'Q') order by to_char(x.time, 'yyyy'),to_char(x.time, 'Q')
2、結(jié)果集

五、按年統(tǒng)計(jì)
1、片段
select to_char(x.time, 'yyyy') as year, count(1) from XIAO x where to_char(x.time, 'yyyy') = '2023' group by to_char(x.time, 'yyyy') order by to_char(x.time, 'yyyy')
2、結(jié)果集

附加
oracle日期函數(shù)IW和WW的區(qū)別
WW:
每年的1月1日作為當(dāng)年的第一周的第一天(不管當(dāng)年的1月1日是星期幾);
比如:2011/01/01 是周六, 在Oracle中被定義為2011年的第一周的第一天;
select to_char(TO_DATE('20230101', 'YYYYMMDD'), 'yyyyww') as week1 from dualIW :
Oracle 日期和時(shí)間函數(shù) IW 和 WW 都用于處理日期和時(shí)間,但它們之間有一些區(qū)別。
首先,WW 函數(shù)用于處理星期幾的標(biāo)準(zhǔn),而 IW 函數(shù)用于處理日期和時(shí)間的標(biāo)準(zhǔn)格式。具體來(lái)說(shuō),WW 函數(shù)將日期或時(shí)間字符串轉(zhuǎn)換為 ISO 8601 標(biāo)準(zhǔn)格式的日期或時(shí)間,而 IW 函數(shù)將日期或時(shí)間字符串轉(zhuǎn)換為本地日期和時(shí)間格式。
其次,WW 函數(shù)將日期或時(shí)間字符串的小時(shí)、分鐘和秒數(shù)分別提取出來(lái),并將它們轉(zhuǎn)換為 12 小時(shí)制的小時(shí)、分鐘和秒數(shù)。而 IW 函數(shù)則將日期或時(shí)間字符串的小時(shí)、分鐘和秒數(shù)保留為原樣,不進(jìn)行轉(zhuǎn)換。
此外,WW 函數(shù)將日期或時(shí)間字符串的日期部分提取出來(lái),并將它們轉(zhuǎn)換為 ISO 8601 標(biāo)準(zhǔn)格式的日期部分。而 IW 函數(shù)則將日期或時(shí)間字符串的日期部分保留為原樣,不進(jìn)行轉(zhuǎn)換。
總之,WW 函數(shù)和 IW 函數(shù)都可以用于處理日期和時(shí)間,但它們之間的區(qū)別在于處理的標(biāo)準(zhǔn)和格式不同。在實(shí)際使用中,需要根據(jù)具體情況選擇適合的函數(shù)。
附加sql片段
oracle求當(dāng)前日期是今年第幾天,第幾周,第幾月,第幾季度。
select
to_char(TO_DATE('20230101','YYYYMMDD') ,'yyyyiw') as week, --oracle求當(dāng)年的第幾周
to_char(TO_DATE('20230101','YYYYMMDD') ,'yyyyww') as week1,--oracle求當(dāng)年的第幾周
to_char(TO_DATE('20230101','YYYYMMDD'),'yyyy') as year,--oracle求第幾年
to_char(TO_DATE('20230101','YYYYMMDD') ,'yyyymm') as month,--oracle求當(dāng)年的第幾月
to_char(TO_DATE('20230101','YYYYMMDD'),'yyyyddd') as day,--oracle求當(dāng)年的第幾天
to_char(TO_DATE('20230401','YYYYMMDD') ,'yyyyq') as quarter-- oracle求當(dāng)年的第幾季度
from dual結(jié)果集

總結(jié)
到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)中如何按天、周、月、季、年統(tǒng)計(jì)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Oracle按天周月季年統(tǒng)計(jì)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ORACLE 數(shù)據(jù)庫(kù)RMAN備份恢復(fù)
還原不同位置的數(shù)據(jù)庫(kù)2009-04-04
oracle中的replace?into使用及說(shuō)明
這篇文章主要介紹了oracle中的replace?into使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Oracle表空間數(shù)據(jù)庫(kù)文件收縮案例解析
這篇文章主要介紹了Oracle表空間數(shù)據(jù)庫(kù)文件收縮案例解析,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫(kù)恢復(fù)
優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫(kù)恢復(fù)...2007-03-03
Oracle數(shù)據(jù)庫(kù)中查詢時(shí)怎么使用日期(時(shí)間)作為查詢條件
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)中查詢時(shí)怎么使用日期(時(shí)間)作為查詢條件的相關(guān)資料,Oracle數(shù)據(jù)庫(kù)下基于日期條件的查詢發(fā)揮著重要的作用,它能夠幫助開(kāi)發(fā)者實(shí)現(xiàn)比較復(fù)雜的數(shù)據(jù)管理任務(wù),需要的朋友可以參考下2024-02-02
Oracle 獲得以百分號(hào)結(jié)尾的腳本有三種寫法
本節(jié)主要介紹了Oracle 獲得以百分號(hào)結(jié)尾的腳本有三種寫法,以獲得ID=4443的數(shù)據(jù)行為例2014-07-07
oracle查看當(dāng)前日期是第幾個(gè)星期的方法
oracle查看當(dāng)前日期是第幾個(gè)星期方法的代碼段,需要的朋友可以參考一下2013-02-02
Oracle清理監(jiān)聽(tīng)文件的幾種安全方式
本文介紹了安全刪除或清理Oracle監(jiān)聽(tīng)日志文件的方法,推薦使用lsnrctl重新啟動(dòng)監(jiān)聽(tīng)或在線截?cái)嗳罩?避免直接刪除正在寫入的文件,需要的朋友可以參考下2025-12-12

