sql >> Base de Datos >  >> RDS >> Database

Cómo encontrar valores máximos en filas

Problema:

Desea encontrar qué filas almacenan el valor numérico más grande en una columna determinada.

Ejemplo:

Nuestra base de datos tiene una tabla llamada student con datos en las siguientes columnas:id , first_name , last_name y grade .

id nombre apellido grado
1 Lisa Jackson 3
2 Gary Larry 5
3 Tom Michelín 2
4 Martín Ladrador 2
5 Ellie Negro 5
6 María Simpson 4

Busquemos a los estudiantes que tienen las calificaciones más altas.

Solución:

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

Aquí está el resultado:

id nombre apellido grado
2 Gary Larry 5
5 Ellie Negro 5

Discusión:

Para encontrar el valor máximo de una columna, use MAX() función agregada; se necesita un nombre de columna o una expresión para encontrar el valor máximo. En nuestro ejemplo, la subconsulta devuelve el número más alto en la columna de calificación (subconsulta:SELECT MAX(grade) FROM student ). La consulta principal muestra id, nombre y apellido, y su calificación. Para mostrar solo las filas con el valor máximo entre todos los valores de la columna (por ejemplo, SELECT MAX(grade) FROM student ), use WHERE con una subconsulta. En WHERE, coloque el nombre de la columna con el valor comparable al valor devuelto por la función de agregado en la subconsulta (en nuestro ejemplo:WHERE grade = (SELECT MAX(grade) FROM student) ).