首先,请原谅语言,我一直无法将我的问题解析为真实的英语,所以如果有人可以编辑以使其更清楚,那将有所帮助。获得每组最后[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)。 –