鉴于以下情况:
drop table if exists a;
create table a (
id CHAR(30),
d1 DATETIME,
d2 DATETIME
);
insert into a values (1, '2012/1/1', '2012/1/2');
insert into a values (1, '2012/1/15', '2012/1/16');
insert into a values (1, '2012/1/25', '2012/1/26');
insert into a values (1, '2012/2/10', '2012/2/11');
insert into a values (2, '2012/1/1', '2012/1/2');
insert into a values (2, '2012/2/6', '2012/2/7');
我想返回每个 ID 的所有记录,但在 30 天内消除任何重复项(datediff(d2,d1) <= 30):
+------+---------------------+---------------------+
| id | d1 | d2 |
+------+---------------------+---------------------+
| 1 | 2012-01-01 00:00:00 | 2012-01-02 00:00:00 |
| 1 | 2012-02-10 00:00:00 | 2012-02-11 00:00:00 |
| 2 | 2012-01-01 00:00:00 | 2012-01-02 00:00:00 |
| 2 | 2012-02-06 00:00:00 | 2012-02-07 00:00:00 |
+------+---------------------+---------------------+
由于 1/15 和 1/25 在 1/1 的 30 天内,因此将它们删除。希望这是有道理的。在一次选择中。