SQL对数据进行按月统计或对数据进行按星期统计的实例代码
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。一、对提现队列数据表"ims_checkout_task"进行汇总统计,按月汇总统
千家信息网最后更新 2025年11月07日SQL对数据进行按月统计或对数据进行按星期统计的实例代码
对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。
一、对提现队列数据表"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 sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END//所以上面的SQL为,如果条件成立,则输出提现金额money字段,否则输出0.
时间处理
//对时间戳格式化成 2018-10FROM_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()
例如
SELECT NOW(),CURDATE(),CURTIME()
例如
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
2、数据库返回如下:
3、关键词
//格式化时间戳,返回星期数,注意周日返回值为0DATE_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)//所以上面的查询条件为星期和第几周同时满足
影子是一个会撒谎的精灵,它在虚空中流浪和等待被发现之间;在存在与不存在之间....
总结
以上所述是小编给大家介绍的SQL对数据进行按月统计或对数据进行按星期统计的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
数据
时间
统计
日期
输出
函数
格式
星期
不同
之间
关键
关键词
字段
数据库
数据表
方法
条件
订单
需求
面的
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
连接数据库的webapi实例e
mac连接远程服务器命令
电子app软件开发
网络安全技术只能拷贝吗
一年级网络安全第一课视频
pmo与软件开发相比怎么样
p0阶段 软件开发
虚拟货币网站服务器租用
db2数据库恢复备份数据
南京仁寶電腦 软件开发
苏州畅影网络技术有限公司
深圳卓远网络技术有限公司
为什么网络安全设备异常
网络安全系统源码
t140服务器建立raid
软件开发工具的发展史
iosai音箱无法连接到服务器
吉林机械软件开发维修价格
网易服务器宕机
平台交易的软件开发
数据防泄密软件开发公司靠谱吗
河北软件开发怎么做
java软件开发实例大全
小米自带邮箱服务器异常
两会期的人行网络安全保障
河北设备维修管理软件开发
东北软件开发公司
张家港网络安全事故
我的世界最热门的四个服务器
宝鸡软件开发工资多少