SQL对数据进行按月统计,或对数据进行按星期统计

sqlServer数据库,将一个月内的数据按周统计 今天遇到一个问题,需要统计一个月的数据,按照每周统计出来,在网上百度了一下,目前没有百度一下,我自己想了一下,再根据网上的一点资料做参考,可以直接实现。 网上有当前日期是当年的第几周,当前日期是这周的第几号等等,但是唯独没有当前日期是每月的第几周。但是,我们可以根据当前日期是每年的第几周来判断。 思路:查询每个月的数据,都是日期 大于等于 一号,小于等于 月底,那我们可以先把日期锁死在某个月的区间内。再把日期转换成当年第几周,将日期以当年第几周的格式给group by 分组一下,最后根据... 阅读详情

#博学谷IT学习技术支持#

前言

对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。


一、需求

对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总统计每个月的提现总额,提现总次数。

1.SQL操作如下:
SELECT id
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL 11 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '0'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL 10 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '1'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  9 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '2'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  8 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '3'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  7 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '4'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  6 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '5'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  5 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '6'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  4 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '7'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  3 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '8'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  2 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '9'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  1 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '10'
,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_SUB(curdate(), INTERVAL  0 MONTH),'%Y-%m') AND `status` = 1 then money else 0 end) as '11'
FROM ims_checkout_task
2.数据库返回如下:

在这里插入图片描述

3.关键词:case when
//流程控制语句case语法,例如,如果sex字段值为1,则输出男;如果sex值为2,则输出女;否则输出其他
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
//所以上面的SQL为,如果条件成立,则输出提现金额money字段,否则输出0.
4.时间处理
//对时间戳格式化成 2018-10
FROM_UNIXTIME(addTime,'%Y-%m')
//SQL获取当前时间格式 2019-08 ,根据expr值不同,依次获取前一个月1,前两个月2 ···
DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 0 MONTH),'%Y-%m')
// 函数用于以不同的格式显示日期/时间数据。
DATE_FORMAT(date,format)
//函数从日期减去指定的时间间隔。
DATE_SUB(date,INTERVAL expr type)
//函数返回当前的日期。
CURDATE()
5.例如
SELECT NOW(),CURDATE(),CURTIME()

在这里插入图片描述

5.1例如
SELECT DAYOFWEEK(NOW()),WEEKDAY(now()),DATE_FORMAT(NOW(),"%w"),NOW()

在这里插入图片描述

二、需求

对积分订单数据表按周汇总统计订单量,比如今天是周二,返回周一到周二的每天单量汇总数据,依次类推

1.SQL操作如下:
SELECT id
,SUM(case when DATE_FORMAT(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),'%w') = 1 AND WEEK(date_add(curdate(),interval 6 day),2) = WEEK(date_add(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),interval 6 day),2) AND `pay_status` = 1 then 1 else 0 end) as '0'
,SUM(case when DATE_FORMAT(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),'%w') = 2 AND WEEK(date_add(curdate(),interval 6 day),2) = WEEK(date_add(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),interval 6 day),2) AND `pay_status` = 1 then 1 else 0 end) as '1'
,SUM(case when DATE_FORMAT(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),'%w') = 3 AND WEEK(date_add(curdate(),interval 6 day),2) = WEEK(date_add(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),interval 6 day),2) AND `pay_status` = 1 then 1 else 0 end) as '2'
,SUM(case when DATE_FORMAT(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),'%w') = 4 AND WEEK(date_add(curdate(),interval 6 day),2) = WEEK(date_add(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),interval 6 day),2) AND `pay_status` = 1 then 1 else 0 end) as '3'
,SUM(case when DATE_FORMAT(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),'%w') = 5 AND WEEK(date_add(curdate(),interval 6 day),2) = WEEK(date_add(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),interval 6 day),2) AND `pay_status` = 1 then 1 else 0 end) as '4'
,SUM(case when DATE_FORMAT(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),'%w') = 6 AND WEEK(date_add(curdate(),interval 6 day),2) = WEEK(date_add(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),interval 6 day),2) AND `pay_status` = 1 then 1 else 0 end) as '5'
,SUM(case when DATE_FORMAT(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),'%w') = 0 AND WEEK(date_add(curdate(),interval 6 day),2) = WEEK(date_add(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),interval 6 day),2) AND `pay_status` = 1 then 1 else 0 end) as '6'
FROM ims_integral_order
1.1 数据库返回如下:

在这里插入图片描述

2.关键词
//格式化时间戳,返回星期数,注意周日返回值为0
DATE_FORMAT(FROM_UNIXTIME(pay_time,'%Y-%m-%d'),'%w')
//返回当前时间为一年中第几周
WEEK(DATE_ADD(CURDATE(),interval 6 day),2)
//获取指定日期是一年中的第几周
WEEK(date,mode)
//函数向日期添加指定的时间间隔。
DATE_ADD(date,INTERVAL expr type)//所以上面的查询条件为星期和第几周同时满足
MySQL中按周、月、季、年分组统计 根据日期,按照周、月、季、年对数据进行分组统计 一、前言     带着问题去学习,我觉得是一种非常有效的学习方法,不知下面的几个问题是否也是你所需要考虑的:被分组的日期是否连续、周是以周日为起始日,还是以周一为起始日、日期跨年。在讨论日期查询的复杂性之前,我们有必要知道一些内建日期处理函数和Date/Time(日期/时间)数据类型,已经有一定了解的快速浏览下就好,直接去后半部分享用正餐。 二... 阅读详情

相关推荐

MySql按时、天、周、月进行数据统计

最近遇到一个统计的需求场景,针对db中的数据,看一下每天的数据量情况,由于DB中时间字段采用的是int存的时间戳,所以最开始想到的是直接对时间进行按天取整,然后再Group统计数据;除此之外,使用函数来处理可能是更简洁的方法了,下面分别介绍下两种方式。...

m0_71777195的博客 6418

MySQL数据篇(五)--SQL对数据进行按月统计,或对数据进行按星期统计

  对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。   一、对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总统计每个月的提现总额,提现总次数。   1、SQL操作如下: SELECT id ,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m'...

weixin_30827565的博客 1267

PostgreSQL高可用之主备复制

多个PostgreSQL可协同工作,如果主库发生宕机备库将迅速进行接管并对外提供服务以实现高可用。本文将从主备复制、主备切换、故障转移等角度进行实际测试演练。第一章主备复制是基础,通过主备复制可以得到一个或多个相同的实例。在主备复制的基础上通过第二章主备切换介绍了如何手工将主库与备库互换角色。在第三章中,采用了Keepalived进行实时监测,在主库宕机后,使用主备切换中提到的命令使备库升级为主库并对外提供服务,以达到PostgreSQL高可用的目标。

asdasdsaff的博客 1348

如何用SQL实现近12个月不同情况数量总和的数据统计?

用SQL实现近12个月不同情况数量总和的数据统计

Do_LaLi的博客 3487

【SAP-MDG】工作流任务配置实战:从基础配置到代理分配详解

本文详细解析了SAP MDG工作流任务配置的全流程,从基础配置到代理分配的关键操作。通过实战案例和最佳实践,帮助用户掌握Configure Workflow Tasks的核心技巧,包括环境检查、代理分配、SWDD事务码使用及常见问题排查,提升主数据管理效率。

weixin_33738555的博客 249

linux应用程序段错误调试

一、堆、栈 在分析段错误之前,先了解一下什么是堆?什么是栈? 堆:一般由开发者分配释放,如果没有释放,程序结束时,在有的OS中可能会被自动释放,分配方式类似于链表。堆的操作方式为,队列优先,先进先出的原则。 栈:由操作系统自动分配,存放函数的参数值,局部变量。栈的操作方式为,先进后出的原则。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。  PUSH:操作在堆栈的顶部加入一个元素...

农村种地人 1111

sqlserver按照月对数据进行分组统计

datename()函数返回的是字符型,便于拼接。然后使用子查询就可以按照月份进行分组啦。附:sqlserver 常见日期格式。

为谁伫立在风中 6601

2025年一篇解决Windows11安装医学图像处理工具-FSL(各种问题解决,过程详细,小白轻松安装)

2025年一篇帮你解决FSl安装所有问题,包括环境安装、使用说明、常见问题,过程简单易懂,小白轻松安装。

weixin_52145255的博客 2524

sql按月统计数据和按月统计累计数量

sql按月统计数据和按月统计累计数量 1.简单的,按月统计数量 SELECT CREATE_DATE, DATE_FORMAT(CREATE_DATE, '%Y-%m') AS month, COUNT(*) AS sum FROM pt_user GROUP BY month; 2.按月累加统计数据 SELECT a.month, SUM(b.total) AS total FROM ( SELECT DATE_FORMAT(CREATE_DATE, '%Y-%m') AS month, SUM

qq_41250747的博客 2万+

Spark入门:从零到能跑的实战教程

Spark 的强大在于它统一了大数据处理的多种场景,从批处理到流处理,从 SQL 到机器学习。对于初学者来说,理解 Spark 的核心理念——内存计算和分布式抽象,是最重要的一步。接着,学会用 PySpark 搭建环境,能读数据、能写 SQL,基本上就入门了。剩下的路,就是通过实战去加深理解。写到这里,相信你对 Spark 已经有了一个比较完整的认识。下一步,不妨自己动手写几个 PySpark 脚本,跑一跑日志数据,或者尝试用 Spark SQL 做一个统计。

Morpheon的博客 1371

基于AI的智能开发环境—Trae在Web开发中的应用实战与性能评估【Trae项目实战】

Trae 是一款与 AI 深度集成的开发工具,提供智能问答、代码自动补全和基于 Agent 的 AI 自动编程能力,极大提升开发效率。它具备完备的 IDE 功能,如代码编写、项目管理和源代码管理等,同时还具备强大的 AI 助手,能够提供智能问答、实时代码建议、代码片段生成等服务。开发者可以通过自然语言与 AI 协作,从 0 到 1 开发项目,AI 会根据需求自动生成代码或创建文件。

一键难忘的博客 3万+

mysql 按月统计代码_SQL对数据进行按月统计或对数据进行按星期统计的实例代码...

对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。一、对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总统计每个月的提现总额,提现总次数。1、SQL操作如下:SELECT id,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_...

weixin_29003437的博客 657

【毕设实战】基于YOLOv8的HRSC2016船舶智能检测系统开发全指南(含可视化UI界面,打造海事领域高分毕设)

亲爱的同学,通过这篇教程,你已经掌握了“基于YOLOv8的HRSC2016微小船只检测系统”从数据集处理、模型训练到Tkinter界面开发的全流程。这个课题既贴合“海事智能化”的产业战略,又涵盖了“目标检测、深度学习、界面开发”等多个毕设评分点,非常适合作为计算机或海事工程专业的毕业设计。在实践中,你可能会遇到“海面背景复杂导致船只漏检”“微小船只识别精度不足”“UI与模型推理同步卡顿”等挑战——别担心,这些都是技术成长的必经之路。

know_F0727的博客 130

mysql数据库查询按月统计数量语句_SQL对数据进行按月统计或对数据进行按星期统计的实例代码...

对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。一、对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总统计每个月的提现总额,提现总次数。1、SQL操作如下:SELECT id,SUM(case when FROM_UNIXTIME(addTime,'%Y-%m') = date_format(DATE_...

weixin_30129025的博客 1503

【忍者算法】从生活案例理解滑动窗口最大值:一个超直观的思路讲解|LeetCode 239 滑动窗口最大值

点此看全部题解更多干货,请关注公众号【忍者算法】,回复【刷题清单】获取完整题解目录~

忍者算法的博客 632

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

mysql按月统计充值提现_MySQL数据篇(五)–SQL对数据进行按月统计,或对数据进行按星期统计...

MySQL数据篇(五)–SQL对数据进行按月统计,或对数据进行按星期统计对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。一、对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总统计每个月的提现总额,提现总次数。1、SQL操作如下:SELECT id,SUM(case when FROM_UNIXTIME(...

weixin_32429413的博客 677

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

mysql按月统计sql_实现mysql按月统计的教程

From: http://www.jbxue.com/db/758.html实现mysql按月统计的教程mysql有个字段是DATETIME类型,要实现可以按月统计,该怎么写sql语句?select month(f1) from tt group by month(f1)orselect DATE_FORMAT(f1,'%m') from tt group by DATE_FORMAT(f1,'%...

weixin_42314420的博客 1458

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

按月查询以周统计销量

背景:以下是我去华为的一个面试问题,当时面试官让我按月以周统计销量,没有数据库,让我自己想一个,然后写sql语句出来,我有点懵。我心里想的是这样来呈现查询结果:假如查询3月的数据 week 销量 第一周 xx 第二周 xx 第三周 xx 第四周 xx 其他月份的也同样这样也显示第一周、第二周。。。。。 无奈当时数据库心里没有设想好,然后也稍有点紧张,就写了取一个月的...

你若盛开,清风自来 2325

MySql按周,按月,按日分组统计数据、日期计算。并统计环比、同比

MySql按周,按月,按日分组统计数据 <!-- 按日查询 --> SELECT DATE_FORMAT(created_date,'%Y-%m-%d') as time,sum(money) money FROM o_finance_detail where org_id = 1000 GROUP BY time <!-- 按月查询 --> SELEC...

背离赤道、逆光而行 1万+

实现mysql按月统计

实现mysql按月统计的教程 From: http://www.jbxue.com/db/758.html 实现mysql按月统计的教程   mysql有个字段是DATETIME类型,要实现可以按月统计,该怎么写sql语句? select month(f1) from tt group by month(f1) or select DATE_FORMAT(f1,'%m') fro

u010379321的博客 3072

case when 和 SQL按按照天 星期 月 极度 半年 年 统计

// 1、按照天 星期 月 极度 半年 年 统计 select DATE_FORMAT(FROM_UNIXTIME(create_time, '%Y-%m-%d'),'%Y-%u') create_time1,count(id) as count FROM itest_tasks GROUP BY create_time1; '%Y%m%d' '%Y%u'//星期 '%Y%m'//月份 CONCA

Notes 3158

mysql 按月统计排序,mysql按月统计_实现mysql按月统计的教程

摘要 腾兴网为您分享:实现mysql按月统计的教程,字体大师,翼拍照,一路捞,我的世界等软件知识,以及诛仙科举答题器,唯品金融,360平板卫士,摄像头录像王,汉王挑战者手写板驱动,手机工具箱,528招聘,可爱打字皮肤,内蒙古志愿云,高级浏览器,守望先锋手机壁纸,一人之下表情包,榕树下社区,华安基金网站,华达教育等软件it资讯,欢迎关注腾兴网。mysql有个字段是DATETIME类型,要实现可以按月...

weixin_30125497的博客 711

统计星期次数的SQL Server存储过程

--用于统计指定日期范围内, 星期天到星期六的个数列表IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N[dbo].[usp_GetWeekDayCount]) AND OBJECTPROPERTY(id, NIsProcedure) = 1)DROP PROC [dbo].[usp_GetWeekDayCoun

feifeiyaqi3的专栏 1673

实现日、周、月排行统计 sql

<br />在如今很多系统中,都需要进行日、周、月排行统计,但是在网上寻找了一番,发现很多都是相对的周、月排行,即周排行则用当前时间减去7天。这样我个人认为并不恰当。如月排行中,假设今天是4月22日,则从3月22日至4月22日之间都可以算成月排行内,这样的话与我们的月排行不尽相同,我认为月排行应该指当月的排行。<br />        概括一下,即两种情况:当前日期往前推一周或者一个月(暂且描述为“相对排行”),当前日期所在周或者所在月(暂且描述为“绝对排行”)。<br />        为了好描述和分

ysf871104的专栏 1280

MySQL基础——按月/周/日分组统计数据

MySQL查询——按月/周/日分组统计数据 在使用MySQL进行查询时,很多时候,我们需要按时间段进行统计,例如每周,每月的数据;这里我们需要使用到MySQL的关键词:DATE_FORMAT 1. 语法 select DATE_FORMAT(upload_time,'%Y%u') weeks,count(SN_ID) count from table_sn group by weeks; -- 按照周分组 select DATE_FORMAT(upload_time,'%Y%m%d') days,coun

weixin_47139649的博客 1万+

oracle统计每周数量,Oracle按年、月、日、周等统计数据

在很多项目中都会有数据统计的功能,如按照年、月、周、日统计某个用户提交的数量;或者直接统计指定年、月、周或者日新增的数量。最近我接触的一个项目,客户就要求根据月和周统计每个单位提价提交的数量。按年统计selecto.id,o.name,to_char(a.create_date,'yyyy'),count(*)from news aleft join sys_user u on u.id = a....

weixin_32224199的博客 2206
上一篇: php开启redis扩展
下一篇: 存储过程的简单实现
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值