我正在尝试运行一个查询来执行以下操作:
返回给定日期范围内表中最近的所有条目。
目前我正在使用以下查询
返回给定日期范围内表中最近的所有条目。
目前我正在使用以下查询
SELECT id FROM schedule WHERE eventdate BETWEEN '2014-09-01' AND '2014-09-07'
它会从下面显示的schedule表中返回1、2、3、4、5记录
schedule表
+----+------------+-------------+-----------------+------------+----------+ | id | eventdate | resource_id | text | added_on | added_by | +----+------------+-------------+-----------------+------------+----------+ | 1 | 2014-09-05 | 1 | Some old text | 2014-08-01 | Sam | | 2 | 2014-09-05 | 1 | Some newer text | 2014-09-01 | Jordan | | 3 | 2014-09-06 | 1 | another day | 2014-09-03 | Jordan | | 4 | 2014-09-05 | 1 | Most recent | 2014-09-10 | Jordan | | 5 | 2014-09-07 | 2 | Other resource | 2014-09-09 | Sam | +----+------------+-------------+-----------------+------------+----------+
我想只返回指定日期范围内唯一的记录,其中应该返回的唯一记录是added_on
列中具有最高日期时间戳的记录。
在上面的示例中,我希望仅返回3、4、5记录。记录1和2已被记录4替代。
请注意:added_on
列的类型为日期时间戳(yyyy-mm-dd HH:mm:ss),已经被省略以清晰明了。
我不知道查询将返回多少行,确定记录唯一性的信息是eventdate、resource_id和added_on
,即每个资源每天只应返回一条记录,并且该记录应具有最高的added_on值。