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

news/2024/10/30 23:27:27/

简介:

       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

结果集


http://www.ppmy.cn/news/58657.html

相关文章

BeautifulSoup4学习笔记

.string–获取文本内容 html <html><head><title>The Dormouses story</title></head><body><p class"title" name"dromouse"><b>The Dormouses story</span></b></p>><p cla…

Java 基础进阶篇(六)—— 接口详解

文章目录 一、接口概述二、接口的基本使用三、接口从 JDK 8 开始新增的方法四、接口的注意事项&#xff08;了解&#xff09;补充&#xff1a;接口与接口的关系 一、接口概述 规范的基本特征是约束和公开。 接口就是一种规范&#xff0c;其约束别人必须干什么事情。 所以&…

自供电-测力刀柄资料整理

自供电-测力刀柄资料整理 2. 相关专利2.1 实时测量铣削过程中床主轴温度装置【1】2.2 一种基于应变片的测力系统【2】 3. 相关商业化产品3.1 spike 测力刀柄【3】3.2 瑞士奇石乐&#xff08;Kistler&#xff09;旋转切削测力仪【4】3.3 kistler的通用型压电式切削力测量系统3.4…

Linux Ansible导入剧本、任务滚动执行、任务并行执行

目录 任务滚动更新 配置并行 包含和导入剧本 任务滚动更新 实现在多台被管理节点执行任务时&#xff0c;第一台的整个playbook执行完成后再在下一台主机执行任务&#xff1b;通过serial元素来实现 serial&#xff1a;1 表示一台一台执行playbook&#xff08;serial也可以指定…

Python基础合集 练习23 (错误与异常语句处理3)

‘’’ raise语句 raise[ExceptionName[(reason)]] 其中ExceptionName[(reason)]是可选参数用来指定抛出异常名称和原因,如果省略该参数,就会原样输出当前的错误 ‘’’ 在下面程序中,使用raise语句抛出ValueError异常 def num_calu(): book int(input(输入图书数量: )) stu…

MySQL知识学习05(InnoDB存储引擎对MVCC的实现)

1、一致性非锁定读和锁定读 一致性非锁定读 对于 一致性非锁定读&#xff08;Consistent Nonlocking Reads&#xff09; &#xff0c;通常做法是加一个版本号或者时间戳字段&#xff0c;在更新数据的同时版本号 1 或者更新时间戳。查询时&#xff0c;将当前可见的版本号与对…

【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架

目录&#xff1a; 1、【IDEA】简单入门&#xff1a;请求数据库表数据_水w的博客-CSDN博客 目录 三、 1、整合SpringSecurity依赖 2、整合Thymeleaf框架 解决css样式等静态资源访问不到的问题 三、 1、整合SpringSecurity依赖 Spring Security是一个能够为基于Spring的企业…

三、进度管理

3、 [单选] 一个项目实施团队需要满足一份非常严格的进度计划。相对于已完成的事项&#xff0c;这样会导致正在进行的工作超过负荷。为了解决这个问题&#xff0c;项目经理需要获得额外的资源。项目经理应该向发起人提供什么理由来支持追加资源的请求&#xff1f; A project im…