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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 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!

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
12月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
314 0
|
2月前
|
SQL 分布式计算 大数据
SparkSQL 入门指南:小白也能懂的大数据 SQL 处理神器
在大数据处理的领域,SparkSQL 是一种非常强大的工具,它可以让开发人员以 SQL 的方式处理和查询大规模数据集。SparkSQL 集成了 SQL 查询引擎和 Spark 的分布式计算引擎,使得我们可以在分布式环境下执行 SQL 查询,并能利用 Spark 的强大计算能力进行数据分析。
|
9月前
|
SQL 关系型数据库 MySQL
网安入门之MySQL后端基础
《网安入门之MySQL后端基础》简介: 本文介绍了数据库及MySQL的基础知识,涵盖数据库的概念、结构与操作。数据库是组织化存储数据的集合,通过表、列、行等结构实现高效管理。MySQL作为开源的关系型数据库管理系统,广泛应用于Web开发。文中详细讲解了MySQL的基本操作,如增(INSERT)、删(DELETE)、改(UPDATE)、查(SELECT)等语句的使用方法,并介绍了数据库事务的ACID特性。此外,还探讨了SQL注入攻击的风险及防范措施,强调了预处理语句的重要性。最后,简述了PHP中mysqli扩展的使用方法,包括连接数据库、执行查询和关闭连接等步骤。
|
7月前
|
关系型数据库 MySQL 数据库连接
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
1019 82
|
6月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
6月前
|
监控 Java 关系型数据库
Spring Boot整合MySQL主从集群同步延迟解决方案
本文针对电商系统在Spring Boot+MyBatis架构下的典型问题(如大促时订单状态延迟、库存超卖误判及用户信息更新延迟)提出解决方案。核心内容包括动态数据源路由(强制读主库)、大事务拆分优化以及延迟感知补偿机制,配合MySQL参数调优和监控集成,有效将主从延迟控制在1秒内。实际测试表明,在10万QPS场景下,订单查询延迟显著降低,超卖误判率下降98%。
219 5
|
9月前
|
SQL 存储 机器学习/深度学习
如何让SQL速度飞起来 入门YashanDB优化器
优化器,SQL引擎的核心组成部分,是数据库中用于把关系表达式转换成最优执行计划的核心组件,影响数据库系统执行性能的关键组件之一。
85 15
|
11月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
11月前
|
监控 关系型数据库 MySQL
MySQL自增ID耗尽应对策略:技术解决方案全解析
在数据库管理中,MySQL的自增ID(AUTO_INCREMENT)属性为表中的每一行提供了一个唯一的标识符。然而,当自增ID达到其最大值时,如何处理这一情况成为了数据库管理员和开发者必须面对的问题。本文将探讨MySQL自增ID耗尽的原因、影响以及有效的应对策略。
487 3
|
11月前
|
存储 监控 关系型数据库
MySQL自增ID耗尽解决方案:应对策略与实践技巧
在MySQL数据库中,自增ID(AUTO_INCREMENT)是一种特殊的属性,用于自动为新插入的行生成唯一的标识符。然而,当自增ID达到其最大值时,会发生什么?又该如何解决?本文将探讨MySQL自增ID耗尽的问题,并提供一些实用的解决方案。
365 1

推荐镜像

更多