首先,請原諒語言,我一直無法將我的問題解析爲真實的英語,所以如果有人可以編輯以使其更清楚,那將有所幫助。獲得每組最後[n,n + t]天
我一直在努力爭取一段時間。我需要每個組從過去N天開始的查詢,跳過最近的一個並檢索下一個T天。這是經典的'LIMIT with GROUP'問題的一個版本,事實上,我嘗試過的其中一個查詢無效,使用了這種形式。
MRE如下:
CREATE TABLE `trying` (id INTEGER PRIMARY KEY AUTO_INCREMENT, types1 TEXT, stuffs INTEGER, dates DATE);
INSERT INTO `trying`(types1, stuffs, dates) VALUES("one",123,'2015-09-06');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("one",67,'2015-09-05');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("one",45,'2015-09-04');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("one",98,'2015-09-03');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("one",89,'2015-09-02');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("two",56,'2015-09-02');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("two",34,'2015-09-01');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("two",98,'2015-08-31');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("two",34,'2015-08-30');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("two",12,'2015-08-29');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("three",3,'2015-09-06');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("three",8,'2015-09-04');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("three",80,'2015-09-02');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("three",9,'2015-09-01');
INSERT INTO `trying`(types1, stuffs, dates) VALUES("three",6,'2015-08-31');
在表trying
有三種types1
'類型': '一個', '2' 和 '3',和有每組5周的觀察。請注意,各組之間的日期不相似,甚至可能存在差距(so no dates BETWEEN, like in this question)。
在這個例子中,我想要得到一個表,每個組有三個中間值。所以跳過第一個和最後一個值,預期的輸出應該是這樣的:
types1 stuffs dates
one 67 2015-09-05
one 45 2015-09-04
one 98 2015-09-03
two 34 2015-09-01
two 98 2015-08-31
two 34 2015-08-30
three 8 2015-09-04
three 80 2015-09-02
three 9 2015-09-01
一對夫婦的查詢,沒有工作:
可能工作SELECT types1, stuffs, dates FROM trying GROUP BY types1 LIMIT 2,4;
/*this returned the following */
types1 stuffs dates
two 56 2015-09-02
SELECT trying.* FROM (SELECT types1, stuffs, dates FROM trying) GROUP BY trying.types1 OFFSET 2,4;
/*threw out an error: Every derived table must have its own alias */
我討論米的解決方案y groupwise max博客:(mysql.rjweb.org/doc.php/groupwise_max)。 –