-1
我有关于多个服务器的信息的数据库:where子句SQL和显示NULL值
mysql> select DATE_FORMAT(timestamp,'%M %Y') as 'Mois',AVG(value_perf) as 'moy' from info WHERE server = 'pi4' GROUP BY MONTH(timestamp);
+----------------+-----------+
| Mois | moy |
+----------------+-----------+
| June 2014 | 98.465500 |
| July 2014 | 98.854516 |
| August 2014 | 98.227097 |
| September 2014 | 95.008667 |
| October 2014 | 77.880000 |
+----------------+-----------+
5 rows in set (0.00 sec)
然而,每个PI服务器具有不同的起始日期(在六月PI4的统计信息,但PI1统计一月)
实施例:
mysql> select DISTINCT DATE_FORMAT(timestamp,'%M %Y') as 'Mois' from info ORDER BY timestamp;
+----------------+
| Mois |
+----------------+
| January 2014 |
| February 2014 |
| March 2014 |
| April 2014 |
| May 2014 |
| June 2014 |
| July 2014 |
| August 2014 |
| September 2014 |
| October 2014 |
+ ---------------- +
,我会立查询得到每个服务器的平均分数,但是用最大的视图,包括NULL。
示例PI4:
+----------------+-----------+
| Mois | moy |
+----------------+-----------+
| January 2014 | NULL |
| February 2014 | NULL |
| March 2014 | NULL |
| April 2014 | NULL |
| May 2014 | NULL |
| June 2014 | 98.465500 |
| July 2014 | 98.854516 |
| August 2014 | 98.227097 |
| September 2014 | 95.008667 |
| October 2014 | 77.880000 |
+----------------+-----------+
PS:这里是数据库结构
mysql> select * from info limit 10;
+----+------------+-----------+------------+-------------+
| id | timestamp | server | value_perf | value_avail |
+----+------------+-----------+------------+-------------+
| 45 | 2014-06-11 | pi4 | 98.33 | 99.91 |
| 46 | 2014-06-12 | pi4 | 97.92 | 100.00 |
| 52 | 2014-06-18 | pi4 | 98.15 | 99.97 |
| 54 | 2014-06-20 | pi | 98.33 | 99.94 |
+----+------------+-----------+------------+-------------+
的一个例子,我想每月的平均,与不可用几个月NULL值。
我该如何得到这个?
谢谢
删除了SQL服务器的标签,因为这个问题是关于MySQL – Lamak 2014-10-06 16:08:19
此选择选项,这不作品: 的mysql>选择DATE_FORMAT(时间戳, '%M%Y')为 '指明MyDate',AVG(value_perf) (timestamp,'%M%Y')作为'Mois'从信息ORDER BY timestamp)GROUP BY MONTH(timestamp);作为'moy'from info WHERE server ='pi4'AND'mydate' 空集(0.00秒) – Chris 2014-10-06 16:10:58
编辑你的问题,并用你试过的查询进行更新。 – 2014-10-06 16:14:15