Не могу понять почему не отрабатывает вложенный запрос и отдается неверный результат.
Условие - необходимо выбрать все значения из таблицы counter, у которых будут выбраны все записи из таблицы с уникальными значениями value_id, при максимальном значении из поля created_at. Уникальных value_id - 500 штук, всего записей в таблице - 5000. Т.е. мне нужны все записи из counter, у которых будет value_id всегда уникален а остальные данные самые ранние.
Суть:
Есть SQL-запрос вида
SELECT *
FROM `counter`
where id in (SELECT ANY_VALUE(a.id) id FROM counter a GROUP BY a.value_id order by ANY_VALUE(a.created_at) DESC)
ORDER BY counter_id DESC, created_at DESC
этот запрос мне отдает все 5000 строк, хотя должен отдать 500.
При отдельном выполнении вложенного запроса - отдается верное количество записей, т.е. 500 штук.
Версия MySQL - 5.7