Возможно, этот вопрос повторяется, но я не могу найти ответ на мою задачу. У меня есть следующая таблица со следующими данными:

Мне нужно выбрать данные с уникальным oid
и максимальной датой для каждого oid. У меня есть эти запросы, но они работают неправильно:
SELECT `oid`, `pvalue`, `date`
FROM `report`
WHERE `deviceid` = 'MRA-1011'
AND `date` <= '2012-01-20 00:00:00'
GROUP BY oid
HAVING `date` = MAX(`date`)
ORDER BY `date` DESC;
SELECT `oid`, `pvalue`
FROM `report`
WHERE `deviceid` = 'MRA-1011'
AND `date` <= '2012-01-20 00:00:00'
GROUP BY oid
ORDER BY `date` DESC;
Я хочу получить такой результат:
