我每小时都会在桌面上插入一条记录。现在我需要检索过去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条记录,所以我不知道如何在当天只提取最新记录。任何帮助将不胜感激。
答案 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中具有不同的值。如果它们不是唯一的,并且多个记录在任何特定日期都是最新的,则返回所有绑定的记录。