我有一個MySQL數據庫,每15分鐘記錄一次數據。爲了簡單起見,讓我們假設有2個字段:爲時間序列數據創建小時組MySQL
DATETIME Created
Double Value
我要提請這就需要用於每個小時的開口,最小值,最大值,和關閉值一小時的圖表。爲此,我需要將我的MySQL查詢結果返回給我的PHP來創建一個JSON。我想在MySQL查詢中這樣做,以便響應被緩存。
這是問題的一個例子,給出9個數據點,試圖讓2小時組:
Creation Value
2014-03-25 12:15:00 413.17011
2014-03-25 12:00:00 414
2014-03-25 11:45:00 415
2014-03-25 11:30:00 415
2014-03-25 11:15:00 415.5
2014-03-25 11:00:00 415.5
2014-03-25 10:45:00 416
2014-03-25 10:30:00 416
2014-03-25 10:15:00 415.99
我需要:
Hour 1 (11:15:00 to 12:15:00)
Open: 415.5
Close: 413.17011
High: 415.5
Low: 413.17011
Hour 2 (10:15:00 to 11:15:00)
Open: 415.99
Close: 415.5
High: 416
Low: 415.5
當然了整整24個小時本會需要重複,這只是一個例子。 任何幫助真的很感激!
下面是例子(使用MySQL版本2.6.4-PL3)當前的MySQL轉儲:
--
-- Table structure for table `exampleTable`
--
CREATE TABLE `exampleTable` (
`created` datetime NOT NULL,
`value` double NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--
-- Dumping data for table `exampleTable`
--
INSERT INTO `exampleTable` VALUES ('2014-03-25 12:15:00', 413.17011);
INSERT INTO `exampleTable` VALUES ('2014-03-25 12:00:00', 414);
INSERT INTO `exampleTable` VALUES ('2014-03-25 11:45:00', 415);
INSERT INTO `exampleTable` VALUES ('2014-03-25 11:30:00', 415);
INSERT INTO `exampleTable` VALUES ('2014-03-25 11:15:00', 415.5);
INSERT INTO `exampleTable` VALUES ('2014-03-25 11:00:00', 415.5);
INSERT INTO `exampleTable` VALUES ('2014-03-25 10:45:00', 416);
INSERT INTO `exampleTable` VALUES ('2014-03-25 10:30:00', 416);
INSERT INTO `exampleTable` VALUES ('2014-03-25 10:15:00', 415.99);
缺乏響應擔心我,所以我會盡我所能縮短這個問題 – ThePerson
正如提示:如果可以的話,你可能會想把日期和時間分成兩列('date'和'time'類型),這樣你就不需要每次都在'created'上投入'DATE()',而是可以使用新的日期列。然後添加一個索引到這個列也是,這加快了你的查詢。[見這個sqlfiddle的例子](http://sqlfiddle.com/#!2/5f117/2) – GhostGambler
甚至更好:[兩者的組合索引新列](http://sqlfiddle.com/#!2/7f282/1)。避免兩個文件 – GhostGambler