sql >> Databasteknik >  >> RDS >> Database

Hur man hittar maximala värden i rader

Problem:

Du vill hitta vilka rader som lagrar det största numeriska värdet i en given kolumn.

Exempel:

Vår databas har en tabell som heter student med data i följande kolumner:id , first_name , last_name och grade .

id förnamn efternamn betyg
1 Lisa Jackson 3
2 Gary Larry 5
3 Tom Michelin 2
4 Martin Barker 2
5 Ellie Svart 5
6 Maria Simpson 4

Låt oss hitta de elever som har de högsta betygen.

Lösning:

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

Här är resultatet:

id förnamn efternamn betyg
2 Gary Larry 5
5 Ellie Svart 5

Diskussion:

För att hitta maxvärdet för en kolumn, använd MAX() aggregerad funktion; det krävs ett kolumnnamn eller ett uttryck för att hitta det maximala värdet. I vårt exempel returnerar underfrågan det högsta numret i kolumnbetyget (underfråga:SELECT MAX(grade) FROM student ). Huvudfrågan visar id, för- och efternamn och deras betyg. För att endast visa raderna med det maximala värdet bland alla värden i kolumnen (t.ex. SELECT MAX(grade) FROM student ), använd WHERE med en underfråga. I WHERE anger du namnet på kolumnen med det jämförbara värdet med värdet som returneras av aggregatfunktionen i underfrågan (i vårt exempel:WHERE grade = (SELECT MAX(grade) FROM student) ).


  1. Postgres lösenordsautentisering misslyckas

  2. JSON_VALUE() i MySQL

  3. Arbetar mot Postgres-XL 9.5

  4. Introduktion till Azure Serverless