SQL对数据进行按月统计或对数据进行按星期统计的实例代码
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。一、对提现队列数据表"ims_checkout_task"进行汇总统计,按月汇总统
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
单身男女下载软件开发
小白想学数据库看什么书
大唐麻将数据库
陌陌软件开发成本
联通卡大数据库
新德汇软件开发公司
数据库执行事务是串行吗
微信视频号服务器在哪里
如何设置电脑服务器代理
网络打鱼服务器
29岁再学软件开发
佛山一轩互联网科技有限公司
广播电视网络安全的重要性
轰炸互联网科技
脚本开发跟软件开发哪个容易
哪个服务器可以做摄像头
计算等级三级数据库技术
陕西发电厂网络安全评估
数据库建设工程师
小软件开发有什么用
武警计算机网络技术定向士官
3种维护网络安全的方式
数据库适合的书籍推荐
无限设置网络安全防御措施
彩虹六号异种服务器链接出现错误
杭州晏青互联网科技有限公司
常见的数据库故障类型有哪些
宝山区一站式网络技术哪家好
管培生求职软件开发
本地上门服务saas软件开发