Возможно ли получить всю строку из сформированой подзапросом таблицы по максимальному значению столбца?
Задание описано в первой строчке кода
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):

Вроде бы попытался описать доступно что мне нужно.
Ответы (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;