Database
 sql >> Datenbank >  >> RDS >> Database

So finden Sie Maximalwerte in Zeilen

Problem:

Sie möchten herausfinden, welche Zeilen den größten numerischen Wert in einer bestimmten Spalte speichern.

Beispiel:

Unsere Datenbank hat eine Tabelle namens student mit Daten in den folgenden Spalten:id , first_name , last_name , und grade .

id Vorname Nachname Klasse
1 Lisa Jackson 3
2 Gary Larry 5
3 Tom Michelin 2
4 Martin Barker 2
5 Ellie Schwarz 5
6 Maria Simpson 4

Lassen Sie uns die Schüler mit den besten Noten finden.

Lösung:

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

Hier ist das Ergebnis:

id Vorname Nachname Klasse
2 Gary Larry 5
5 Ellie Schwarz 5

Diskussion:

Um den maximalen Wert einer Spalte zu finden, verwenden Sie MAX() Aggregatfunktion; es braucht einen Spaltennamen oder einen Ausdruck, um den Maximalwert zu finden. In unserem Beispiel gibt die Unterabfrage die höchste Zahl in der Spalte Note zurück (Unterabfrage:SELECT MAX(grade) FROM student ). Die Hauptabfrage zeigt ID, Vor- und Nachname und ihre Note an. Um nur die Zeilen mit dem höchsten Wert unter allen Werten in der Spalte anzuzeigen (z. B. SELECT MAX(grade) FROM student ), verwenden Sie WHERE mit einer Unterabfrage. Geben Sie in WHERE den Namen der Spalte mit dem vergleichbaren Wert zu dem Wert ein, der von der Aggregatfunktion in der Unterabfrage zurückgegeben wird (in unserem Beispiel:WHERE grade = (SELECT MAX(grade) FROM student)). ).