MySQL、Oracle按年、月、日、季度 分组统计

这篇具有很好参考价值的文章主要介绍了MySQL、Oracle按年、月、日、季度 分组统计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们经常遇到一些需求,需要我们在sql语句中对日期进行分类统计,而mysql和oracle又有一些不同,下面是我总结的MySQL、Oracle按年、月、日、季度 分组统计,以后你在遇到类似的问题,在小王这一篇就可以搞定啦!

mysql按季度分组,mysql,oracle,数据库 

 1、MySQL按年、月、日、季度 分组统计

首先我们来讲讲mysql按时间的分类统计:

原数据格式

 mysql按季度分组,mysql,oracle,数据库

 接下来我们就按照年月给这些数据进行分组统计:

select count(id),CONCAT(year(create_time),'-',month(create_time)) as datetest   
from as_early_warning_file
WHERE create_time BETWEEN '2023-06-13' AND '2023-07-18' group by datetest;

运行后就变成了你想要的年月格式:

mysql按季度分组,mysql,oracle,数据库

 文章来源地址https://www.toymoban.com/news/detail-818521.html

注:这里主要用了CONCAT()拼接函数 ,它里面有几种参数year代表年、month代表月,当然还有别的比如:季度函数:quarter 、周函数:week 、日函数:day;看你自己的需求进行组合拼接就可以啦。

2、oracle按年、月、日、季度 分组统计

相比较mysql的拼接函数,oracle的可能就要稍微复杂一些

mysql按季度分组,mysql,oracle,数据库

2.1、按年份分组

select to_char(DATE,'yyyy'),sum(ID) 或者 count(*) from TABLE group by to_char(DATE,'yyyy');

 SELECT to_char(to_date(DATE,'YYYY-MM-DD HH24:MI:SS'),'YYYY') as annual,count(ORDER_NO) as itemnumber  FROM TABLE GROUP BY to_char(to_date(DATE,'YYYY-MM-DD HH24:MI:SS'),'YYYY')

如果日期类型是NVARCHAR2就用下面这种,先把NVARCHAR2转成DATE  

输出后的格式为:

年份 数量

-----------------------------

2021 68

2022 37

2023 89

2.2、按月份分组

select to_char(DATE,'yyyy-mm'),sum(ID) from TABLE group by to_char(DATE,'yyyy-mm')
order by to_char(DATE,'yyyy-mm');

 SELECT to_char(to_date(DATE,'YYYY-MM-DD HH24:MI:SS'),'MM') as annual,count(ORDER_NO) as itemnumber  FROM TABLE GROUP BY to_char(to_date(DATE,'YYYY-MM-DD HH24:MI:SS'),'MM')

注:上面的格式为年月,下面光有月份, 如果日期类型是NVARCHAR2就用下面这种,先把NVARCHAR2转成DATE

输出格式为:

月份 数量

-----------------------------

2021-02 20

2021-03 45

2021-04 16

2021-05 5

2022-09 41

2022-10 15

2023-06 10

2023-07 23

2.3、按天分组

 select to_char(DATE,'YYYY-MM-DD'),sum(ID) from TABLE group by to_char(DATE,'YYYY-MM-DD')
order by to_char(DATE,'YYYY-MM-DD');

按天数也是一样,拼接上就可以

2.4、按季度分组

 select to_char(DATE,'yyyy-Q'),sum(ID) from TABLE group by to_char(DATE,'yyyy-Q')
order by to_char(DATE,'yyyy-Q');

按季度就有些不同了,是在年的后面拼接Q 

输出格式为:

季度 数量

------------------------------

2021-1 22

2021-2 81

2021-4 68

2022-3 49

2022-4 88

2.5、按周分组

select to_char(DATE,'yyyy-IW'),sum(ID) from TABLE group by to_char(DATE,'yyyy-IW')
order by to_char(DATE,'yyyy-IW');

按周分组是在年的后面拼接IW 

输出格式为:

周 数量

------------------------------

2022-07 20

2022-11 12

2022-16 24

2022-24 34

2023-43 21

2023-46 11

好啦,今天的分享就到此结束啦,希望能够帮助到各位小猿!

mysql按季度分组,mysql,oracle,数据库

 

到了这里,关于MySQL、Oracle按年、月、日、季度 分组统计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从 Oracle 到 MySQL 数据库的迁移之旅

    目录 引言 一、前期准备工作 1.搭建新的MySQL数据库 2 .建立相应的数据表 2.1 数据库兼容性分析 2.1.1 字段类型兼容性分析 2.1.2 函数兼容性分析 2.1.3 是否使用存储过程?存储过程的个数?复杂度? 2.1.4 是否使用触发器?个数?使用的场景? 2.2 建表过程中其他需要注意的事项

    2024年04月11日
    浏览(49)
  • Mysql和Oracle数据库死锁查看以及解决

    一、Mysql数据库死锁排查 SQL : SQL: SQL: 示例: 备注:通过查看事务的trx_started(开始时间)来判断该事务的阻塞时间。 SQL  : 备注:线程ID指的是 1.1.3步骤中查询出来的 trx_mysql_thread_id。 SQL : 示例 : 字段解析 : SQL : 示例: SQL : 备注:多个session用逗号隔开。 View Code   造

    2024年01月20日
    浏览(44)
  • 数据库加密AES 适用 Mysql Oracle 以及java

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 备忘录:加密key为:vU4C!~0_HQtlU_p@ 可采用任意长度为16位的字符串 数据库数据需要对敏感数据进行加密,比如手机号,身份证号以及银行卡号等进行加密。需要一套通用的加密方法可以在java项目以及or

    2024年02月15日
    浏览(48)
  • 查询Oracle和MySQL数据库中当前所有连接信息

    查询Oracle当前所有连接信息: 查询MySQL当前所有连接信息: 在这两个查询中,我为每个字段添加了中文别名,以提高查询结果的可读性

    2024年02月12日
    浏览(69)
  • 从MySQL迁移到Oracle数据库的详细步骤和方法

    在一些情况下,可能需要将现有的MySQL数据库迁移到Oracle数据库。本文将详细介绍如何进行这一迁移过程,涵盖了备份、转换和导入等关键步骤,以帮助你顺利完成数据库迁移。 在开始迁移之前,务必备份你的MySQL数据库,以便在出现问题时可以还原数据。 确保你已经安装了

    2024年02月08日
    浏览(51)
  • docker安装mysql、clickhouse、oracle等各种数据库汇总

    1:docker 安装mongo数据库并使用 官网:https://www.mongodb.com/docs/manual/ mongo shell教程1:http://c.biancheng.net/mongodb2/connection.html 安装1 :https://www.zhihu.com/question/54602953/answer/3047452434?utm_id=0 安装2:https://www.duidaima.com/Group/Topic/ArchitecturedDesign/9182 使用驱动进行java开发:https://mongodb.github.

    2024年02月10日
    浏览(51)
  • DataGrip连接数据库设置(MySQL、Oracle、SQL Server)

    1.1 配置信息 1.2 测试查询employees库中departments表信息 employees为测试库,具体来源,参考这篇文章 下载并导入MySQL示例数据库employees 。 1.3 测试查询employees库中employees表信息 将SID改为orcl: 3.1 打开DG后新建Data Source-Microsoft SQL Server 下载驱动文件后按图中配置: 3.2 开启Named Pipes和

    2024年02月12日
    浏览(45)
  • 数据库问题记录(粗略版)oracle、mysql等主流数据库通用

    1. ORA-00918:未明确定义列 该问题情况大致为:select 所取列名错误、重复等问题。 2. “select * from temp where 1=0; ”的含义 布尔值为FALSE,只返回表结构,不返回数据。 举一反三: select * from temp where 10 , 布尔值为TRUE,返回所有数据记录; select * from temp where 1=0, 暂不清楚是何

    2024年02月07日
    浏览(48)
  • 数据库sql 根据身份证计算年龄段mysql、oracle

    mysql: mysql通过函数可以精确到日 结果: Oracle: oracle只是年份相减,不够精确 结果:

    2024年02月12日
    浏览(63)
  • Oracle、MySQL数据库常规命令语法-简易记录(非常规持续更新)

    前言:呈现的是非常基础必备命令以及常规关联语法,因涉及到不同数据库其表达都会有所区别,此篇纯属做个仓库记录更非常规持续更新,专业人士可忽略,且看且珍惜… MySQL: 关系型数据库、重点开源、支持大型规模、标准SQL数据语言、多平台多架构、高可用集群、可定

    2024年01月25日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包