``Encontre o número, fornecedor e preço do ítem mais caro.''
No SQL ANSI isto é feito fácilmente com uma sub-consulta:
SELECT article, dealer, price FROM shop WHERE price=(SELECT MAX(price) FROM shop);
No MySQL (que ainda não suporta sub-selects), faça isto em dois passos:
Obtenha o valor do preço máximo da tabela com uma
instrução SELECT
.
mysql> SELECT MAX(price) FROM shop;
+------------+
| MAX(price) |
+------------+
| 19.95 |
+------------+
Usando o valor 19.95 mostrado pela consulta anterior como o preço máximo do artigo, grave uma consulta para localizar e mostrar o registro correspondente:
mysql>SELECT article, dealer, price
->FROM shop
->WHERE price=19.95;
+---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0004 | D | 19.95 | +---------+--------+-------+
Outra solução é ordenar todos os registros por preço de
forma descendente e obtenha somente o primeiro registro
utilizando a cláusula específica do MySQL
LIMIT
:
SELECT article, dealer, price FROM shop ORDER BY price DESC LIMIT 1;
NOTA: Se existir diversos
ítens mais caros, cada um com um preço de 19.95, a solução
LIMIT
mostra somente um deles !
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.