在工作中,有这样一个需求,就是需要统计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`) )
下面我想统计12个月的每月数据,如果数据存在,则显示数据;如果数据不存在,则现实我们约定的错误码(-601).下面只是给出了3条SQL语句提供样例.不管存不存在数据,肯定会查出3条记录来.
在真正的开发中,要把其中前面的time和后面where里的time,用所查询的语句,动态组装.如果朋友们还不理解,就给我留言吧 ^-^
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-08-12 10:40:00' as time from vardata where time='2012-08-12 10:40:00' union select if(count(*)=0,-601,data) as data,'2013-09-12 10:40:00' as time from vardata where time='2013-09-12 10:40:00';
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, time
, 语句
, data
, 00
where
mysql 统计每天的数据、mysql 统计重复数据、mysql 数据统计、mysql统计每天数据、mysql 统计每小时数据,以便于您获取更多的相关知识。
时间: 2024-12-31 11:34:31