我想組數據使用GROUP BY 1個區天間隔這個帖子上提到: Grouping into interval of 5 minutes within a time rangeMySQL的GROUP BY DIV結果並不一致
它看起來乍一看罰款。 但我發現在比較2個不同日期間隔(但相交)的查詢時出現不一致。 首先,我使用來自年2月1 00:00至02月26 00:00時間範圍,第二 我使用時間範圍從2月20日00:00至02月26 00:00
年02月20值是那些之間是不同的2個查詢。但其餘的(21 - 25)相匹配。
任何想法是怎麼回事&如何解決它?
更新: 這裏的存儲過程來產生二月僞數據上的每一分鐘:
DELIMITER $$
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `testdata`()
BEGIN
DECLARE gap int;
DECLARE x bigint;
SET gap = 60000;
SET x = 1454265000000;
CREATE TABLE IF NOT EXISTS testdata (
timestamp bigint(20) default NULL,
value int(20) default NULL
)
ENGINE=MyISAM DEFAULT CHARSET=utf8;
WHILE x <= 1456770599000 DO
INSERT INTO testdata(timestamp, value) VALUES (x, FLOOR(RAND() * (270 + 1)) + 30);
SET x = x + gap;
END WHILE;
select x;
END
而且我這裏還有2查詢比較2個區間:
select from_unixtime(timestamp/1000), count(value) from testdata where timestamp >= 1454265000000 and timestamp <= 1456770599000 group by timestamp div 86400000;
select from_unixtime(timestamp/1000), count(value) from testdata where timestamp >= 1455906600000 and timestamp <= 1456770599000 group by timestamp div 86400000;
首先查詢於2016-02-20歸還1440.二次查詢於2016-02-20在2016-02-20 00:00:00 = 330和2016-02-20 05:30:00 = 1440歸還2條記錄。
顯示您的數據和查詢。 – Barmar
@Barmar帖子已經更新了數據和查詢。謝謝。 – manus
除以86400000與使用DATE(FROM_UNIXTIME(timestamp/1000))相同' – Barmar