在工作中,有这样一个需求,就是需要统计24个小时的相关数据.有的朋友认为简单的一句group by就可以解决。其实不然,真正的统计,24个小时都得有数据的,不允许出现缺失的现象.其实这个有点像废话,处理结果集ResultSet也可以,但为了减少JAVA的负担和增强java代码的可读性,所以尽量用SQL语句,一次性把数据处理好.
表结构,有三个字段一看就明白
Sql代码
CREATE TABLE `vardata` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`time` datetime DEFAULT '0000-00-00 00:00:00',
`data` double(15,5) DEFAULT '0.00000',
PRIMARY KEY (`Id`,`time`),
UNIQUE KEY `unique` (`name`,`time`)
)
CREATE TABLE `vardata` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`time` datetime DEFAULT '0000-00-00 00:00:00',
`data` double(15,5) DEFAULT '0.00000',
PRIMARY KEY (`Id`,`time`),
UNIQUE KEY `unique` (`name`,`time`)
)
下面我想统计12个月的每月数据,如果数据存在,则显示数据;如果数据不存在,则现实我们约定的错误码(-601).下面只是给出了3条SQL语句提供样例.
在真正的开发中,要把其中前面的time和后面where里的time,用所查询的语句,动态组装.如果朋友们还不理解,就给我留言吧 ^-^
Sql代码
select if(count(*)=0,-601,data) as data,'2011-07-12 10:40:00' as time from vardata where time='2011-07-12 10:40:00'
union
select if(count(*)=0,-601,data) as data,'2012-07-12 10:40:00' as time from vardata where time='2012-07-12 10:40:00'
union
select if(count(*)=0,-601,data) as data,'2013-07-12 10:40:00' as time from vardata where time='2013-07-12 10:40:00';
分享到:
相关推荐
MySQL是世界上最受欢迎的开源数据库系统之一,而`mysql-connector-java-5.1.46`是MySQL官方提供的Java数据库连接器,用于在Java应用程序中与MySQL数据库进行交互。这个驱动程序符合JDBC(Java Database Connectivity...
MySQL是世界上最受欢迎的开源数据库管理系统之一,主要用于存储和管理数据。这个特定的压缩包"mysql-8.2.0-winx64-debug-test.zip"包含了MySQL的8.2.0版本,专为Windows 64位操作系统设计。下面将详细讨论MySQL 8.x...
`mysql-server-mysql-5.7.36.tar.gz` 是MySQL服务器的一个特定版本,版本号为5.7.36,它以tar.gz格式打包,这是一种在Linux和Unix-like操作系统中常见的归档和压缩方法。 MySQL 5.7版本是MySQL发展中的一个重要里程...
MySQL是世界上最受欢迎的开源数据库管理系统之一,主要用于存储和管理数据。`mysql-installer-community-5.6.43.0.msi` 文件是MySQL社区版的安装程序,适用于Windows操作系统。这个版本是5.6系列的一个具体版本,5.6...
4. **查询优化器改进**:MySQL 5.7引入了新的查询优化器统计方法,可以更准确地估计查询执行计划的成本,从而选择最佳执行路径。 5. **Column Store索引**:在某些场景下,如数据分析和报表生成,使用Column Store...
安装完成后,可以使用`mysql`客户端连接到本地服务器,创建数据库,导入数据,进行查询和其他管理任务。 总之,MySQL 8.0.31为Windows用户提供了一个强大、安全且功能丰富的数据库平台,通过不断的优化和创新,确保...
统计数据量可以帮助我们识别哪些表占用了大量空间,以便进行进一步的分析和优化。 **CONCAT函数解读** CONCAT函数是MySQL中的字符串操作函数,用于将两个或更多个字符串连接成一个单一的字符串。其基本语法为`...
通常这类文档会包含安装、配置和使用MySQL的详细步骤,以及可能遇到的问题和解决方法。 总结来说,MySQL 5.7.35是一个强大且功能丰富的数据库管理系统,适合需要高性能、高可用性和可扩展性的应用环境。这个压缩包...
这里使用 `HOUR` 函数来获取 `login_time` 的小时部分,并用 `GROUP BY hours` 来分组统计数据。 ```sql SELECT HOUR(login_time) AS hours, SUM(user_id) AS count FROM tb_log_login WHERE DATE_FORMAT(login...
4. **安全增强**: 这个版本提升了安全性,包括更好的身份验证方法,如使用PAM(Pluggable Authentication Modules)和更好的权限管理,确保数据的安全。 5. **GTID(Global Transaction Identifier)**: GTID是一种...
MySQL是世界上最受欢迎的开源数据库管理系统之一,特别是在Web应用程序中。"mysql-boost-5.7.32.tar.gz"是一个包含MySQL服务器版本5.7.32的源代码压缩包,该版本支持Boost库,Boost是一个C++库集合,提供了各种各样...
MySQL 数据查询操作实验训练 2 本实验训练涵盖了 MySQL 数据查询操作的多个方面,包括单表查询、多条件查询、聚合函数查询、内连接查询、外连接查询、复合查询等。通过对实验内容的分析,可以总结出以下知识点: 1...
- 监控MySQL服务器的性能,使用索引优化、查询优化等方法提升数据库运行效率。 5. **学习资源**: - MySQL官方文档:提供详尽的使用指南和技术参考。 - 在线教程和社区论坛:如Stack Overflow、MySQL论坛等,是...
假设我们有一个人口统计数据表,包含年龄组和人口数量,要将这些列转换为每行记录年龄和对应的数量,可以这样做: ```sql SELECT 'Age_10-20' AS age_group, population_10_20 AS population FROM population_data...
本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-5.1.34.jar`这个驱动包进行数据库连接。 首先,JDBC驱动是Java程序连接MySQL数据库的关键,它允许Java应用程序通过执行SQL语句来...
MySQL是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,尤其在Web应用程序中广泛...通过熟悉和掌握其安装、配置和使用方法,开发者和管理员可以充分利用MySQL 5.7.13的诸多增强功能,实现高效、安全的数据管理。
本文将详细介绍MySQL中常用的类型转换函数及其具体用法,帮助大家更好地理解和运用这些功能。 #### 一、类型转换的重要性 在实际应用中,我们经常需要处理来自不同源的数据,这些数据可能具有不同的数据类型。例如...
通过上述知识点的学习和实践,后端开发者能提高SQL技能,同时,对于学习大数据的同学,掌握MySQL经典问题有助于更好地理解Hive的用法,提升在大数据环境下的SQL应用能力。通过解题和练习,可以深入理解这些概念并...
MySQL-Boost是一个专门为MySQL数据库系统增强性能而设计的版本,结合了MySQL服务器和Boost库的特性。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),而Boost则是一系列C++库的集合,提供了大量的工具和...
在本文中,我们将深入探讨MySQL的使用方法,通过具体的例子来帮助你理解和掌握其核心概念。 1. 安装与配置MySQL 在开始使用MySQL之前,你需要在你的操作系统上安装MySQL服务器。这通常可以通过下载并运行安装程序...