SQL - 检索过去7天的最后一天记录

时间:2011-12-23 03:03:42

标签: mysql sql

我每小时都会在桌面上插入一条记录。现在我需要检索过去30天内每天的最新记录。

这是我的表:

pl_scores: {
  score_id: 'BIGINT(255) PRIMARY KEY AUTO_INCREMENT'
, pid: 'INT(100)'
, score: 'INT(255)'
, rank: 'INT(50)'
, city_cnt: 'INT(10)'
, updatedAt: 'DATETIME'
}

由于每天有24条记录,所以我不知道如何在当天只提取最新记录。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

第1步 - 白天将它们分组 步骤2 - 选择每个组的最后一个条目的时间戳 第3步 - 返回并获取与这些时间戳匹配的记录。


SELECT
  pl_scores.*
FROM
  pl_scores
INNER JOIN
  (SELECT MAX(updatedAt) AS maxUpdatedAt FROM pl_scores GROUP BY DATE(updatedAt)) as Lookup
    ON Lookup.MaxUpdatedAt = pl_scores.updatedAt

注意:这假设每条记录在updatedAt中具有不同的值。如果它们不是唯一的,并且多个记录在任何特定日期都是最新的,则返回所有绑定的记录。