Запрос группы последних записей по DeviceId - PullRequest
1 голос
/ 06 мая 2010

У меня есть таблица базы данных logs в следующем виде:

альтернативный текст http://www.freeimagehosting.net/uploads/16e974703a.jpg

Я хотел бы извлечь последнюю запись устройства, pollDate, статуса. Например,

deviceId, pollDate, status

1, 2010-95-06 10:53:28, 1

3, 2010-95-06 10:26:28, 1


Я попытался выполнить следующий запрос, но отличные выбирают только первые записи, а не самые последние

SELECT DISTINCT deviceId, pollDate, status
FROM logs
GROUP By deviceId
ORDER BY pollDate DESC

альтернативный текст http://www.freeimagehosting.net/uploads/5d181103f8.jpg

Итак, не могли бы вы помочь мне извлечь последние записи из таблицы? Спасибо.

1 Ответ

1 голос
/ 06 мая 2010

Если (deviceID, poll_date) уникален, вы можете сделать следующее:

SELECT  *
FROM    (
        SELECT  deviceid, MAX(poll_date) AS md
        FROM    logs
        GROUP BY
                deviceid
        ) q
JOIN    logs l
ON      l.deviceid = q.deviceid
        AND l.poll_date = q.md
...