Database
 sql >> Base de Dados >  >> RDS >> Database

Como encontrar valores máximos em linhas

Problema:


Você deseja descobrir quais linhas armazenam o maior valor numérico em uma determinada coluna.

Exemplo:


Nosso banco de dados tem uma tabela chamada student com dados nas seguintes colunas:id , first_name , last_name e grade .
id first_name last_name classe
1 Lisa Jackson 3
2 Gary Larry 5
3 Tom Michelin 2
4 Martin Barker 2
5 Ellie Preto 5
6 Maria Simpson 4

Vamos encontrar os alunos que têm as notas mais altas.

Solução:

SELECT  id, first_name, last_name, grade
FROM student
WHERE grade = (SELECT MAX(grade) FROM student);

Aqui está o resultado:
id first_name last_name classe
2 Gary Larry 5
5 Ellie Preto 5

Discussão:


Para encontrar o valor máximo de uma coluna, use o MAX() função agregada; é necessário um nome de coluna ou uma expressão para encontrar o valor máximo. Em nosso exemplo, a subconsulta retorna o número mais alto na coluna nota (subconsulta:SELECT MAX(grade) FROM student ). A consulta principal exibe id, nome e sobrenome e sua nota. Para exibir apenas as linhas com o valor máximo entre todos os valores na coluna (por exemplo, SELECT MAX(grade) FROM student ), use WHERE com uma subconsulta. Em WHERE, coloque o nome da coluna com o valor comparável ao valor retornado pela função agregada na subconsulta (no nosso exemplo:WHERE grade = (SELECT MAX(grade) FROM student) ).