MySQL: выборка последних значений таблицы с группировкой по колонке
Задача: выбрать последние по дате значения в таблице для каждого значения в колонке source
Решение: запрос получается с соединением. Т.е. в соединении мы делаем запрос максимальных дат с группировкой по source, а затем соединяем по дате и значению source
SELECT
m_data.*
from
m_data
inner JOIN (
SELECT MAX(m_data.dt) as dt,m_data.source from m_data where m_data.source in (SELECT id FROM sources where device IN (1,2)) GROUP by m_data.source
) as maximum
on (maximum.source=m_data.source and maximum.dt=m_data.dt)