Oracle数据库中如何按天、周、月、季、年统计数据

 更新时间:2024年03月02日 08:37:31   作者:你才是臭弟弟  
我们经常遇到一些需求,需要我们在sql语句中对日期进行分类统计,下面这篇文章主要给大家介绍了关于Oracle数据库中如何按天、周、月、季、年统计数据的相关资料,需要的朋友可以参考下

简介:

oracle实现按照天、周、月、季、年进行数据统计,在实际业务场景中如 "报表之类" 、"财务业务的往来" 等等,业务往往需要我们统计整年 或 整月的数据等,下面我们直入主题。

说明:

原始数据

一、按天查询

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、结果集

day 统计2023-04-23 号,count(1) 统计2023-04-23 号有两条数据,sum 统计2023-04-23两条数据个数相加。

二、按周查询

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、结果集

三 、按月度查询

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、结果集

四、按季统计

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、结果集

五、按年统计

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、结果集

附加 

oracle日期函数IW和WW的区别

WW: 

     每年的1月1日作为当年的第一周的第一天(不管当年的1月1日是星期几); 
     比如:2011/01/01 是周六, 在Oracle中被定义为2011年的第一周的第一天; 

select to_char(TO_DATE('20230101', 'YYYYMMDD'), 'yyyyww') as week1 from dual

IW :

    Oracle 日期和时间函数 IW 和 WW 都用于处理日期和时间,但它们之间有一些区别。

首先,WW 函数用于处理星期几的标准,而 IW 函数用于处理日期和时间的标准格式。具体来说,WW 函数将日期或时间字符串转换为 ISO 8601 标准格式的日期或时间,而 IW 函数将日期或时间字符串转换为本地日期和时间格式。

其次,WW 函数将日期或时间字符串的小时、分钟和秒数分别提取出来,并将它们转换为 12 小时制的小时、分钟和秒数。而 IW 函数则将日期或时间字符串的小时、分钟和秒数保留为原样,不进行转换。

此外,WW 函数将日期或时间字符串的日期部分提取出来,并将它们转换为 ISO 8601 标准格式的日期部分。而 IW 函数则将日期或时间字符串的日期部分保留为原样,不进行转换。

总之,WW 函数和 IW 函数都可以用于处理日期和时间,但它们之间的区别在于处理的标准和格式不同。在实际使用中,需要根据具体情况选择适合的函数。

附加sql片段

 oracle求当前日期是今年第几天,第几周,第几月,第几季度。

select 
to_char(TO_DATE('20230101','YYYYMMDD') ,'yyyyiw')  as week, --oracle求当年的第几周
to_char(TO_DATE('20230101','YYYYMMDD') ,'yyyyww')  as week1,--oracle求当年的第几周
to_char(TO_DATE('20230101','YYYYMMDD'),'yyyy') as year,--oracle求第几年
to_char(TO_DATE('20230101','YYYYMMDD') ,'yyyymm') as month,--oracle求当年的第几月
to_char(TO_DATE('20230101','YYYYMMDD'),'yyyyddd') as day,--oracle求当年的第几天
to_char(TO_DATE('20230401','YYYYMMDD') ,'yyyyq') as quarter-- oracle求当年的第几季度
from dual

结果集

总结 

到此这篇关于Oracle数据库中如何按天、周、月、季、年统计数据的文章就介绍到这了,更多相关Oracle按天周月季年统计数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法

    Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法

    这篇文章主要为大家详细介绍了Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Oracle 18c新特性-PDB快照轮播(Snapshot Carousel)

    Oracle 18c新特性-PDB快照轮播(Snapshot Carousel)

    Oracle 18c推出的一个新功能就是PDB快照轮播,最多可以创建8个pdb的快照,而这8个构成的一组快照就被称作快照轮播。这篇文章主要介绍了Oracle 18c新特性-PDB快照轮播(Snapshot Carousel),需要的朋友可以参考下
    2018-10-10
  • Oracle Sqlplus命令登录多种方式案例讲解

    Oracle Sqlplus命令登录多种方式案例讲解

    这篇文章主要介绍了Oracle Sqlplus命令登录多种方式案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Oracle在Mybatis中SQL语句的配置方法

    Oracle在Mybatis中SQL语句的配置方法

    这篇文章主要介绍了Oracle在Mybatis中SQL语句的配置 ,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • Oracle如何设置密码复杂度

    Oracle如何设置密码复杂度

    这篇文章主要介绍了Oracle如何设置密码复杂度问题,具有很好的参考价值,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Oracle数据库密码文件的使用与维护

    Oracle数据库密码文件的使用与维护

    Oracle数据库密码文件的使用与维护...
    2007-03-03
  • Oracle 轻量级实时监控工具 oratop详解

    Oracle 轻量级实时监控工具 oratop详解

    这篇文章主要介绍了Oracle 轻量级实时监控工具 oratop,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Oracle 11g数据库安装与卸载的方法图解

    Oracle 11g数据库安装与卸载的方法图解

    如果小编使用的是win7系统,最好采用11g,否则很可能10g出现不兼容安装不成功的情况。下面给大家分享Oracle 11g数据库安装与卸载的方法图解,非常不错,感兴趣的朋友一起看看吧
    2016-09-09
  • 使用JDBC4.0操作Oracle中BLOB类型的数据方法

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    这篇文章主要介绍了使用JDBC4.0操作Oracle中BLOB类型数据的方法,我们需要使用ojdbc6.jar包,本文介绍的非常详细,需要的朋友可以参考下
    2016-08-08
  • Oracle数据库恢复教程之resetlogs操作

    Oracle数据库恢复教程之resetlogs操作

    这篇文章主要给大家介绍了关于Oracle数据库恢复教程之resetlogs操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle数据库具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05

最新评论