mysql按照日期分组统计数据(date_formatstr_to_date)

学习链接

mysql按照日期分组统计数据

博主-山茶花开时的 【Mysql专栏学习】

mysql按照日期分组统计数据

Mysql的date_format函数想必大家都使用过吧,一般用于日期时间转化,如下所示

# 可以得出 2023-01-01 08:30:50
select DATE_FORMAT('2023-01-01 08:30:50','%Y-%m-%d %H:%i:%s')# 或者是如下,可以得出 2023-01-01
select DATE_FORMAT('2023-01-01 08:30:50','%Y-%m-%d')# 或者是如下,可以得到,将字符串转变为日期/时间值
#(STR_TO_DATE函数与DATE_FORMAT函数的作用是相反的,
#	如果不能按照format解析str,STR_TO_DATE函数将返回NULL
#	如果其中任何一个参数为NULL,STR_TO_DATE函数将返回NULL
# )
select str_to_date('2023-10-02','%Y-%m-%d') -- 格式与date_format一致

不过很多时间不仅仅仅限于这些最基础的使用,当我们需要对于时间的数据有更高的要求时,就需要对这个函数有更多的了解了,例如按一定的时间段分组统计这段时间的数据,本期我们主要讲这个分组统计的操作,下面直接进入正题

按天统计

按天统计是一个比较基础的统计方式,大部分人也应该能直接写出来

SELECTdate_format( o.bill_date, '%Y-%m-%d' ) evertday,COUNT(*) orderNumFROM TABLE o 
GROUP BYevertday 
ORDER BYevertday DESC

在这里插入图片描述

按周统计

第一种
SELECTsubdate( date_format( o.bill_date, '%Y-%m-%d' ), date_format( o.bill_date, '%w' ) ) weekend,COUNT(*) orderNum 
FROMtest o 
GROUP BYweekend 
ORDER BYweekend DESC LIMIT 9

在这里插入图片描述

这边可以看出日期已经按照周进行排序分组了,7月30到8月5号的数据都已经统计到了7月30这个weekend中 我们简单剖析一下: 首先date_format(o.bill_date,‘%Y-%m-%d’)大家都很清楚会把日期变成yyyy-MM-dd形式
在这里插入图片描述
而date_format(o.bill_date,‘%w’)会统计这天是这周的礼拜几,这个参数我在最后整理了一张表格可供大家查看使用 那么8月2号正好是礼拜三,再通过subdate函数去减一下这个日期就可以统计出来一个对应的时间了,或者也有朋友喜欢用DATE_SUB函数都是一样的效果,这样就统计出来了上周末的时间,也就是上周末到这周末是一个轮回
在这里插入图片描述

第二种
SELECTweekday( bill_date ) AS weekday,date_format( date_add( bill_date, INTERVAL - ( weekday( bill_date ) + 1 ) DAY ), '%Y-%m-%d' ) AS monday,count( 1 ) 
FROMt 
GROUP BYmondayorder BY monday DESC

总体的思路都差不多,计算出了上周日的时间点进行group by
在这里插入图片描述

按月统计

按月统计的话就是另外一种思路了,因为按周的统计的话还存在日的概念,而按月统计的话就可以省略掉日期了

SELECTDATE_FORMAT ( bill_date, '%Y-%m' ) months,count( 1 ) count 
FROMt 
GROUP BYmonthsorder BY months DESC

在这里插入图片描述

按年统计

这个跟按月统计一个道理,只统计年份就可以了

select DATE_FORMAT( bill_date, '%Y' ) months,count(1 ) count from t group by monthsorder by months desc

在这里插入图片描述

格式描述
%a三个字符缩写的工作日名称,例如: Mon,Tue,Wed等
%b三个字符缩写的月份名称,例如: Jan,Feb,Mar等
%c以数字表示的月份值,例如: 1, 2, 3…12
%D以数字表示月份中的某天(可理解为一个月之中的第几天),后跟英文后缀,例如: 1st,2nd,3rd等
%d以数值表示月份中的某天,如果是小于10的数字,该数字需要加前导0, 例如: 00,01,02, …31
%e以数值表示月份中的某天,小于10的数字不需要加前导0,例如: 1,2,… 31
%f微秒,范围在(000000到999999)
%H24小时格式的小时,前导加0,例如: 00,01…23
%h12小时格式的小时,前导加0,例如: 00,01 … 12
%I与%h相同12小时格式的小时,前导加0,例如: 00,01 … 12
%i分钟,范围在00到59
%j一年中的的第几天,前导加0,例如: 001,002,… 366
%k24小时格式的小时,无前导0,例如: 0,1,2 … 23
%l12小时格式的小时,无前导0,例如: 1,2 … 12
%M月份全名称,例如: January, February…December
%m以数值形式显示的月份名称,前导加0,例如: 01,02,… 12
%pAM或PM,取决于其他时间说明符
%r表示时间,12小时格式hh:mm:ss AM/PM
%S秒,前导加0,例如: 00,01…59
%s与%S相同
%T表示时间,24小时格式hh:mm:ss
%U表示周数,星期日为一周的第一天,例如:00,01,02 … 53时,前导0的周数
%u表示周数,星期一为一周的第一天,例如:00,01,02 … 53时,前导0的周数
%V与%U相同,它与%X一起使用
%v与%u相同,它与%x一起使用
%W工作日的全称,例如: Sunday, Monday,…, Saturday
%w工作日,以数字来表示(0 = 星期日,6 = 星期六)
%X周的四位数表示年份,第一天是星期日,经常与%V一起使用
%x周的四位数表示年份,第一天是星期一,经常与%v一起使用
%Y表示年份,四位数,例如: 2000,2001,…等
%y表示年份,两位数,例如: 00,01,…等
%%将百分比(%)字符添加到输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/163489.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【无标题】光伏逆变器的IEC62109测试,逆变器IEC62109测试项目

光伏逆变器的IEC62109测试,逆变器IEC62109测试项目 逆变器又称电源调整器,根据逆变器在光伏发电系统中的用途可分为独立型电源用和并网用二种。根据波形调制方式又可分为方波逆变器、阶梯波逆变器、正弦波逆变器和组合式三相逆变器。对于用于并网系统的…

【Qt控件之QListWidget】介绍及使用,利用QListWidget、QToolButton、和布局控件实现抽屉式组合控件

概述 QListWidget类提供了基于项目的列表小部件。 QListWidget是一个方便的类,类似于QListView提供的列表视图,但使用经典的基于项目的接口来添加和删除项目。QListWidget使用内部模型来管理列表中的每个QListWidgetItem。 对于更灵活的列表视图小部件…

C++实现AC自动机,剪枝、双数组压缩字典树!详解双数组前缀树(Double-Array Trie)剪枝字典树(Patricia Trie)

代码在:github.com/becomequantum 最近研究了一下字典树,什么AC自动机,双数组压缩字典树,剪枝字典树都自己写代码实现了一下。这本该是本科学数据结构时该玩明白的东西,我到现在才会玩。本视频主要介绍一下双数组和剪…

【JavaEE】计算机是如何工作的

计算机是如何工作的 冯诺依曼体系操作系统操作系统的概念与定位进程和任务操作系统对进程的管理PCB 的相关信息 冯诺依曼体系 现代的大多数计算机, 都遵循冯诺依曼体系 CPU 中央处理器: 进行算术运算和逻辑判断存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入…

竞赛 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

竞赛选题 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习YOLO抽烟行为检测 该项目较为新颖,适合作为竞赛课…

简单测试一下 展锐的 UDX710 性能

最近在接触 联通5G CPE VN007 ,发现使用的是 展锐的Unisoc UDX710 CPU,正好简单的测试一下这颗CPU CPU信息 UDX710 是一颗 双核 ARM Cortex-A55 处理器,主频高达 1.35GHz processor : 0 BogoMIPS : 52.00 Features : fp…

Django中ORM框架的各个操作

我们会好奇,python这么简洁的语言,数据查询是如何做的呢?我将进一步详细和深入地介绍Django中ORM框架的各个方面,包括MySQL的增删改查和复杂查询。让我们分步骤进行。 ORM框架介绍 Django的ORM框架是一个用于与数据库进行交互的工…

Spring Boot项目中使用 TrueLicense 生成和验证License(附源码)

1、Linux 在客户linux上新建layman目录,导入license.sh文件, [rootlocalhost layman]# mkdir -p /laymanlicense.sh文件内容: #!/bin/bash # 1.获取要监控的本地服务器IP地址 IPifconfig | grep inet | grep -vE inet6|127.0.0.1 | awk {p…

【LeetCode】 412. Fizz Buzz

题目链接 文章目录 Python3 【O(n) O(1)】C.emplace_back() 【C 11 之后】 Python3 【O(n) O(1)】 初始版本 class Solution:def fizzBuzz(self, n: int) -> List[str]:ans []for i in range(1, n1):if i % 5 0 and i % 3 0:ans.append("FizzBuzz")elif i % …

07 创建型模式-单例模式

1.单例模式介绍 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,此模式保证 某个类在运行期间,只有一个实例对外提供服务,而这个类被称为单例类。 2.使用单例模式要做的两件事 保证一个类只有一个实例…

【API篇】五、Flink分流合流API

文章目录 1、filter算子实现分流2、分流:使用侧输出流3、合流:union4、合流:connect5、connect案例 分流,很形象的一个词,就像一条大河,遇到岸边有分叉的,而形成了主流和测流。对于数据流也一样…

GitHub-使用 Git工具 创建密钥id_rsa.pub

快速导航 步骤1 打开Git Bash步骤2 输入指令【ssh-keygen】步骤3 打开创建的公钥文件步骤4 复制其中所有内容步骤5 打开GitHub中的Setting界面步骤6 添加SSH keys 步骤1 打开Git Bash 打开Git Bash 工具 步骤2 输入指令【ssh-keygen】 输入指令【ssh-keygen】,并…

【四:httpclient的使用】

目录 1、Demo案例2、请求一个带cookies的get请求3、请求一个带cookies的post请求案例一,案例二的properties的配置 1、Demo案例 public class MyHttpClient {Testpublic void test1() throws IOException {//用来存放我们的结果String result;HttpGet get new Htt…

安装VSCode,提升工作效率!iPad Pro生产力进阶之路

文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. iPad通过软件远程vscode6.1 创建TCP隧道 7. ipad远…

模型量化笔记--KL散度量化

KL散度量化 前面介绍的非对称量化中,是将数据中的min值和max值直接映射到[-128, 127]。 同样的,前面介绍的对称量化是将数据的最大绝对值 ∣ m a x ∣ |max| ∣max∣直接映射到127。 上面两种直接映射的方法比较粗暴,而TensorRT中的int8量化…

openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数

文章目录 openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数102.1 背景信息102.2 操作步骤 openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数 102.1 背景信息 当用户连接数达到上限后&#…

小黑子—Maven基础

Maven基础 一 小黑子的Maven学习1. Mavn的介绍2. Maven基础概念2.1 仓库2.2 坐标2.3 仓库配置 3. 手动写一个maven项目3.1 Maven项目构建命令3.2 插件创建工程 4. IDEA下的maven项目5. 依赖管理5.1 依赖配置5.2 依赖传递5.3 可选依赖(不透明)5.4 排除依赖…

【一:实战开发testng的介绍】

目录 1、主要内容1.1、为啥要做接口测试1.2、接口自动化测试落地过程1.3、接口测试范围1.4、手工接口常用的工具1.5、自动化框架的设计 2、testng自动化测试框架基本测试1、基本注解2、忽略测试3、依赖测试4、超时测试5、异常测试6、通过xml文件参数测试7、通过data实现数据驱动…

UWB十个知识点

UWB是一直被基于厚望的高精度定位技术 1:定位技术及UWB特点 位置空间感知技术包括了GNSS、RFID、蓝牙和UWB,在室内和区域空间测量最具技术优势的技术是UWB。 GNSS是广域定位技术,室内以及建筑物旁边等场景,GNSS无法实现定位&am…