O Registro que Armazena o Valor Máximo para uma Coluna Determinada


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 MariaDB (que ainda não suporta sub-selects), faça isto em dois passos:

  1. 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 |
    +------------+
    
  2. 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 MariaDB 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 !

Retornar