Возможно ли получить всю строку из сформированой подзапросом таблицы по максимальному значению столбца?

Задание описано в первой строчке кода

SELECT  тут нужно получить всю строку(тоесть m.disp_id и moves_count_for_disp) где MAX(moves_count_for_disp)(тоесть где значения этого поля больше чем другие)
FROM    (
        SELECT      m.disp_id, COUNT(m.disp_id) moves_count_for_disp
        FROM        car_move m
                    INNER JOIN car_disp d ON d.disp_id = m.disp_id
        WHERE       MONTH(date_exec) = 1
        GROUP BY    m.disp_id
        ) disp_moves_count

Вот таблица которая получается в результате подзапроса(disp_moves_count): Вот таблица которая получается в результате подзапроса(disp_moves_count)

Вроде бы попытался описать доступно что мне нужно.


Ответы (2 шт):

Автор решения: vlad9i2

Возможно так:

SELECT m.disp_id, COUNT(m.disp_id) moves_count
FROM car_move m
INNER JOIN car_disp d ON d.disp_id = m.disp_id
WHERE MONTH(date_exec) = 1
GROUP BY m.disp_id
HAVING moves_count = (
SELECT MAX(moves_count_for_disp)
FROM (
        SELECT      m.disp_id, COUNT(m.disp_id) moves_count_for_disp
        FROM        car_move m
                    INNER JOIN car_disp d ON d.disp_id = m.disp_id
        WHERE       MONTH(date_exec) = 1
        GROUP BY    m.disp_id
        ) disp_moves_count
)
→ Ссылка
Автор решения: Aleksey Vaganov

Для выбора одной строки с максимальным значением поля можно отсортировать вашу таблицу в порядке убывания значений вашего поля и взять первую строчку:

SELECT
FROM    (
        SELECT      m.disp_id, COUNT(m.disp_id) moves_count_for_disp
        FROM        car_move m
                    INNER JOIN car_disp d ON d.disp_id = m.disp_id
        WHERE       MONTH(date_exec) = 1
        GROUP BY    m.disp_id
        ) disp_moves_count
ORDER BY moves_count_for_disp DESC
LIMIT 1;
→ Ссылка