-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