当前位置: 代码网 > it编程>数据库>Oracle > Oracle数据库中如何按天、周、月、季、年统计数据

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

2024年05月15日 Oracle 我要评论
简介: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按天周月季年统计数据内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com