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

2024-04-16 0 948
目录
  • 简介:
  • 说明:
  • 一、按天查询
    • 1、片段
    • 2、结果集
  • 二、按周查询
    • 1、片段
    • 2、结果集
  • 三 、按月度查询
    • 1、片段
    • 2、结果集
  • 四、按季统计
    • 1、片段
    • 2、结果集
  • 五、按年统计
    • 1、片段
    • 2、结果集
  • 附加
    • oracle日期函数IW和WW的区别
    • 附加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两条数据个数相加。

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

    二、按周查询

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

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

    三 、按月度查询

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

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

    四、按季统计

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

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

    五、按年统计

    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数据库中如何按天、周、月、季、年统计数据

    附加

    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按天周月季年统计数据内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 Oracle Oracle数据库中如何按天、周、月、季、年统计数据 https://www.u-9.cn/database/oracle/185918.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务