MySQL实战基础知识入门(8):当天和昨天24小时数据统计的sql语句解决方案

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL实战基础知识入门(8):当天和昨天24小时数据统计的sql语句解决方案

在echarts中需要实现最近24小时和上24小时,即当天与昨天24小时内时间段的数据统计,mysql语句如下:

 //最近24小时记录;
        $sql = "select RIGHT(DATE_FORMAT(paid_at,'%Y-%m-%d %H'),2) as dataKey,ifnull(COUNT(id),0) AS totalTrans,ifnull(SUM(should_paid),0) AS totalPays from " . $db->table('orders') . "  WHERE DATE_FORMAT(paid_at,'%Y-%m-%d') = curdate()";
        $sql .= " GROUP BY DATE_FORMAT(paid_at,'%Y-%m-%d %H')";
        $row = $db->queryall($sql);
        $res["data"] = $row;
        //上24小时记录;
        $sql_p = "select RIGHT(DATE_FORMAT(paid_at,'%Y-%m-%d %H'),2) as dataKey,ifnull(COUNT(id),0) AS totalTrans,ifnull(SUM(should_paid),0) AS totalPays from " . $db->table('orders') . "  WHERE TO_DAYS(curdate()) - TO_DAYS(date_format(paid_at,'%Y-%m-%d')) = 1";
        $sql_p .= " GROUP BY DATE_FORMAT(paid_at,'%Y-%m-%d %H')";
        $row_p = $db->queryall($sql_p);
        $res["pdata"] = $row_p;
        die(json_encode_lockdata($res));

说明:

  • 直接生成00,01,02…时间点
RIGHT(date(),2) //截取时间段后两位,即00,01,02...
  • 按照当天的时间点分组,即 2020-08-03 05的形式分组
GROUP BY DATE_FORMAT(paid_at,'%Y-%m-%d %H')
  • 昨天24小时的筛选条件
TO_DAYS(curdate()) - TO_DAYS(date_format(paid_at,'%Y-%m-%d')) = 1

最终生成的数据格式:

{"err":"","res":"",
"data":[{"dataKey":"00","totalTrans":"4","totalPays":"301.70"},{"dataKey":"01","totalTrans":"1","totalPays":"39.90"},{"dataKey":"03","totalTrans":"2","totalPays":"35.80"},{"dataKey":"05","totalTrans":"3","totalPays":"80.80"},{"dataKey":"06","totalTrans":"9","totalPays":"423.90"},{"dataKey":"07","totalTrans":"38","totalPays":"1925.69"},{"dataKey":"08","totalTrans":"91","totalPays":"4324.88"},{"dataKey":"09","totalTrans":"119","totalPays":"6423.51"},{"dataKey":"10","totalTrans":"128","totalPays":"9273.93"},{"dataKey":"11","totalTrans":"123","totalPays":"6563.52"},{"dataKey":"12","totalTrans":"81","totalPays":"4116.21"},{"dataKey":"13","totalTrans":"58","totalPays":"2704.50"},{"dataKey":"14","totalTrans":"77","totalPays":"6561.20"},{"dataKey":"15","totalTrans":"40","totalPays":"2078.60"},{"dataKey":"16","totalTrans":"75","totalPays":"4270.22"},{"dataKey":"17","totalTrans":"193","totalPays":"7928.64"},{"dataKey":"18","totalTrans":"81","totalPays":"3809.69"},{"dataKey":"19","totalTrans":"30","totalPays":"1409.47"}],
"pdata":[{"dataKey":"00","totalTrans":"5","totalPays":"173.20"},{"dataKey":"01","totalTrans":"1","totalPays":"25.90"},{"dataKey":"05","totalTrans":"2","totalPays":"59.80"},{"dataKey":"06","totalTrans":"9","totalPays":"279.80"},{"dataKey":"07","totalTrans":"9","totalPays":"304.00"},{"dataKey":"08","totalTrans":"28","totalPays":"1213.80"},{"dataKey":"09","totalTrans":"62","totalPays":"3588.53"},{"dataKey":"10","totalTrans":"73","totalPays":"5576.20"},{"dataKey":"11","totalTrans":"77","totalPays":"4690.90"},{"dataKey":"12","totalTrans":"60","totalPays":"3712.68"},{"dataKey":"13","totalTrans":"51","totalPays":"2377.80"},{"dataKey":"14","totalTrans":"60","totalPays":"2746.80"},{"dataKey":"15","totalTrans":"63","totalPays":"3833.20"},{"dataKey":"16","totalTrans":"61","totalPays":"3271.10"},{"dataKey":"17","totalTrans":"49","totalPays":"3171.60"},{"dataKey":"18","totalTrans":"59","totalPays":"4038.30"},{"dataKey":"19","totalTrans":"75","totalPays":"4575.40"},{"dataKey":"20","totalTrans":"116","totalPays":"4818.44"},{"dataKey":"21","totalTrans":"136","totalPays":"7200.34"},{"dataKey":"22","totalTrans":"58","totalPays":"2934.00"},{"dataKey":"23","totalTrans":"25","totalPays":"1904.00"}]}


20200803193842904.png


Done!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:百万级数据统计优化实践
【10月更文挑战第21天】 在处理大规模数据集时,传统的单体数据库解决方案往往力不从心。MySQL和Redis的组合提供了一种高效的解决方案,通过将数据库操作与高速缓存相结合,可以显著提升数据处理的性能。本文将分享一次实际的优化案例,探讨如何利用MySQL和Redis共同实现百万级数据统计的优化。
57 9
|
29天前
|
NoSQL 关系型数据库 BI
记录一次MySQL+Redis实现优化百万数据统计的方式
【10月更文挑战第13天】 在处理百万级数据的统计时,传统的单体数据库往往力不从心,这时结合使用MySQL和Redis可以显著提升性能。以下是一次实际优化案例的详细记录。
103 1
|
30天前
|
SQL 运维 关系型数据库
MySQL 运维 SQL 备忘
MySQL 运维 SQL 备忘录
46 1
|
1月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
131 1
|
1月前
|
SQL 存储 数据管理
SQL数据库的使用指南:从入门到精通
随着信息技术的飞速发展,数据库已成为各类企业和组织不可或缺的一部分。作为最流行的数据库管理系统之一,SQL数据库广泛应用于各种场景,如数据存储、数据管理、数据分析等。本文将详细介绍SQL数据库的使用方法,帮助初学者快速入门,并帮助有经验的开发者深化理解。一、SQL数据库基础首先,我们需要理解SQL数
108 2
|
18天前
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
33 0
|
18天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
30 0
|
24天前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
1月前
|
SQL 存储 关系型数据库
mysql 数据库空间统计sql
mysql 数据库空间统计sql
45 0
|
1月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
14 0