`
jiagyao
  • 浏览: 99272 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

MySQL的经典用法(八)----统计数据,空的也显示(转)

阅读更多
   在工作中,有这样一个需求,就是需要统计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-connector-java-5.1.46(领附MySQL向Oracle迁移教程)

    MySQL是世界上最受欢迎的开源数据库系统之一,而`mysql-connector-java-5.1.46`是MySQL官方提供的Java数据库连接器,用于在Java应用程序中与MySQL数据库进行交互。这个驱动程序符合JDBC(Java Database Connectivity...

    mysql-8.2.0-winx64-debug-test.zip

    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-server-mysql-5.7.36.tar.gz` 是MySQL服务器的一个特定版本,版本号为5.7.36,它以tar.gz格式打包,这是一种在Linux和Unix-like操作系统中常见的归档和压缩方法。 MySQL 5.7版本是MySQL发展中的一个重要里程...

    mysql-installer-community-5.6.43.0.msi

    MySQL是世界上最受欢迎的开源数据库管理系统之一,主要用于存储和管理数据。`mysql-installer-community-5.6.43.0.msi` 文件是MySQL社区版的安装程序,适用于Windows操作系统。这个版本是5.6系列的一个具体版本,5.6...

    mysql-installer-community-5.7.25

    4. **查询优化器改进**:MySQL 5.7引入了新的查询优化器统计方法,可以更准确地估计查询执行计划的成本,从而选择最佳执行路径。 5. **Column Store索引**:在某些场景下,如数据分析和报表生成,使用Column Store...

    mysql-8.0.31-winx64.zip

    安装完成后,可以使用`mysql`客户端连接到本地服务器,创建数据库,导入数据,进行查询和其他管理任务。 总之,MySQL 8.0.31为Windows用户提供了一个强大、安全且功能丰富的数据库平台,通过不断的优化和创新,确保...

    如何统计MySQL数据量大小

    统计数据量可以帮助我们识别哪些表占用了大量空间,以便进行进一步的分析和优化。 **CONCAT函数解读** CONCAT函数是MySQL中的字符串操作函数,用于将两个或更多个字符串连接成一个单一的字符串。其基本语法为`...

    mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar.zip

    通常这类文档会包含安装、配置和使用MySQL的详细步骤,以及可能遇到的问题和解决方法。 总结来说,MySQL 5.7.35是一个强大且功能丰富的数据库管理系统,适合需要高性能、高可用性和可扩展性的应用环境。这个压缩包...

    mysql 统计一天24小时数据默认补0SQL

    这里使用 `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...

    mysql-5.7.24-winx64.rar

    4. **安全增强**: 这个版本提升了安全性,包括更好的身份验证方法,如使用PAM(Pluggable Authentication Modules)和更好的权限管理,确保数据的安全。 5. **GTID(Global Transaction Identifier)**: GTID是一种...

    mysql-boost-5.7.32.tar.gz

    MySQL是世界上最受欢迎的开源数据库管理系统之一,特别是在Web应用程序中。"mysql-boost-5.7.32.tar.gz"是一个包含MySQL服务器版本5.7.32的源代码压缩包,该版本支持Boost库,Boost是一个C++库集合,提供了各种各样...

    mysql数据查询操作-实验训练2.docx

    MySQL 数据查询操作实验训练 2 本实验训练涵盖了 MySQL 数据查询操作的多个方面,包括单表查询、多条件查询、聚合函数查询、内连接查询、外连接查询、复合查询等。通过对实验内容的分析,可以总结出以下知识点: 1...

    mysql-5.7.25.zip

    - 监控MySQL服务器的性能,使用索引优化、查询优化等方法提升数据库运行效率。 5. **学习资源**: - MySQL官方文档:提供详尽的使用指南和技术参考。 - 在线教程和社区论坛:如Stack Overflow、MySQL论坛等,是...

    mysql-行转列、列转行

    假设我们有一个人口统计数据表,包含年龄组和人口数量,要将这些列转换为每行记录年龄和对应的数量,可以这样做: ```sql SELECT 'Age_10-20' AS age_group, population_10_20 AS population FROM population_data...

    Mysql5.6、Mysql5.7 JDBC驱动

    本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-5.1.34.jar`这个驱动包进行数据库连接。 首先,JDBC驱动是Java程序连接MySQL数据库的关键,它允许Java应用程序通过执行SQL语句来...

    mysql-5.7.13-winx64.zip

    MySQL是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,尤其在Web应用程序中广泛...通过熟悉和掌握其安装、配置和使用方法,开发者和管理员可以充分利用MySQL 5.7.13的诸多增强功能,实现高效、安全的数据管理。

    Mysql中类型转换

    本文将详细介绍MySQL中常用的类型转换函数及其具体用法,帮助大家更好地理解和运用这些功能。 #### 一、类型转换的重要性 在实际应用中,我们经常需要处理来自不同源的数据,这些数据可能具有不同的数据类型。例如...

    mysql经典50题_大数据_mysql经典50题_mysql经典五十题_hive_

    通过上述知识点的学习和实践,后端开发者能提高SQL技能,同时,对于学习大数据的同学,掌握MySQL经典问题有助于更好地理解Hive的用法,提升在大数据环境下的SQL应用能力。通过解题和练习,可以深入理解这些概念并...

    mysql-boost-5.7.17.tar.gz

    MySQL-Boost是一个专门为MySQL数据库系统增强性能而设计的版本,结合了MySQL服务器和Boost库的特性。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),而Boost则是一系列C++库的集合,提供了大量的工具和...

    MySql MySql使用方法 Mysql例子

    在本文中,我们将深入探讨MySQL的使用方法,通过具体的例子来帮助你理解和掌握其核心概念。 1. 安装与配置MySQL 在开始使用MySQL之前,你需要在你的操作系统上安装MySQL服务器。这通常可以通过下载并运行安装程序...

Global site tag (gtag.js) - Google Analytics