MySQL запрос с условием MAX()?

Работает, но результат неправильный:
SELECT `id`, MAX(`num`) FROM `table` WHERE `active`=1

Я точно знаю что максимальные значения в таблице находятся под id 2 и 3 а он выдаёт в ответе id=1

Эти и им подобные запросы вызывают лишь синтаксическую ошибку
SELECT `id`, `query`, WHERE `query`=MAX(`query`)
SELECT `id`, `query`, WHERE `query`=MAX()

Т.е. нужно максимальное значение + условие where и так что бы ещё id этой строчки получить.
  • Вопрос задан
  • 7544 просмотра
Решения вопроса 3
@SharuPoNemnogu
не язык плохой, программисты такие...
SELECT `id`, `num` FROM `table` WHERE `active`=1 ORDER BY `num` DESC LIMIT 1
Ответ написан
SELECT * FROM table t WHERE active = 1 AND NOT EXISTS (
    SELECT 1 FROM table WHERE active = 1 AND num > t.num
)
Ответ написан
Вложенный запрос?
SELECT `id`, `query`
FROM   `table`
WHERE  `query`=(SELECT MAX(`query`)
              FROM `table`)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
SELECT `id`, `num` FROM `table` HAVING `active`=1 AND `num`=MAX(`num`)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы