Como obter o livro com o preço máximo — através de MAX(preço) ou através de ordenação com LIMIT 1?
sobes.tech IA
Resposta da IA
Ambas as opções — usando MAX(price) ou ordenando com LIMIT 1 — podem fornecer o resultado desejado, mas há nuances:
-
MAX(price)retorna o valor máximo do preço, mas não toda a linha do livro. Para obter toda a linha com o preço máximo, é necessário fazer uma consulta adicional ou usar uma subconsulta. -
Ordenar por preço em ordem decrescente com
LIMIT 1retorna imediatamente toda a linha do livro com o preço máximo.
Exemplo com ordenação:
SELECT * FROM books ORDER BY price DESC LIMIT 1;
Exemplo com MAX e subconsulta:
SELECT * FROM books WHERE price = (SELECT MAX(price) FROM books);
Se o preço máximo for único, ambas as opções são equivalentes. Se vários livros tiverem o mesmo preço máximo, a segunda opção retornará todos os livros com esse preço, enquanto a ordenação com LIMIT 1 retornará apenas um.
Em termos de desempenho, geralmente a ordenação com LIMIT 1 é mais rápida se houver um índice no preço, pois não requer uma varredura completa da tabela.