SQL - получить последнюю запись дня за последние 7 дней - PullRequest
4 голосов
/ 23 декабря 2011

Я вставляю запись каждый час в мою таблицу.Теперь мне нужно получить самую последнюю запись каждого дня за последние 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 Ответ

4 голосов
/ 23 декабря 2011

Шаг 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. Если они не уникальны и несколько записей связаны за то, что они являются самыми последними в любой день, возвращаются все связанные записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...