Как получить книгу с максимальной ценой — через MAX(price) или через сортировку с LIMIT 1?
Ответ от нейросети
sobes.tech AI
Оба варианта — через MAX(price) и через сортировку с LIMIT 1 — могут дать нужный результат, но есть нюансы:
-
MAX(price)возвращает максимальное значение цены, но не всю запись книги. Чтобы получить всю книгу с максимальной ценой, нужно делать дополнительный запрос или использовать подзапрос. -
Сортировка по цене по убыванию с
LIMIT 1сразу возвращает всю запись книги с максимальной ценой.
Пример с сортировкой:
SELECT * FROM books ORDER BY price DESC LIMIT 1;
Пример с MAX и подзапросом:
SELECT * FROM books WHERE price = (SELECT MAX(price) FROM books);
Если максимальная цена уникальна, оба варианта эквивалентны. Если максимальная цена встречается у нескольких книг, второй вариант вернёт все книги с этой ценой, а сортировка с LIMIT 1 — только одну.
По производительности обычно сортировка с LIMIT 1 быстрее, если есть индекс по цене, так как не требует полного сканирования таблицы.