Sobes.tech
Middle

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 1 retorna 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.