sql >> Database >  >> RDS >> Database

Maximale waarden in rijen vinden

Probleem:

U wilt weten in welke rijen de grootste numerieke waarde in een bepaalde kolom is opgeslagen.

Voorbeeld:

Onze database heeft een tabel met de naam student met gegevens in de volgende kolommen:id , first_name , last_name , en grade .

id voornaam achternaam cijfer
1 Lisa Jackson 3
2 Gary Larry 5
3 Tom Michelin 2
4 Martin Barker 2
5 Ellie Zwart 5
6 Maria Simpson 4

Laten we de studenten zoeken met de hoogste cijfers.

Oplossing:

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

Dit is het resultaat:

id voornaam achternaam cijfer
2 Gary Larry 5
5 Ellie Zwart 5

Discussie:

Gebruik de MAX() . om de maximale waarde van een kolom te vinden geaggregeerde functie; er is een kolomnaam of uitdrukking nodig om de maximale waarde te vinden. In ons voorbeeld retourneert de subquery het hoogste getal in de kolom cijfer (subquery:SELECT MAX(grade) FROM student ). De hoofdquery toont id, voor- en achternaam en hun cijfer. Om alleen de rijen met de maximale waarde van alle waarden in de kolom weer te geven (bijv. SELECT MAX(grade) FROM student ), gebruik WHERE met een subquery. Plaats in WHERE de naam van de kolom met de vergelijkbare waarde met de waarde die wordt geretourneerd door de aggregatiefunctie in de subquery (in ons voorbeeld:WHERE grade = (SELECT MAX(grade) FROM student) ).


  1. Hoe een string in SQLite te trimmen

  2. Gegevensbeheer met Python, SQLite en SQLAlchemy

  3. Oracle NULLIF() functie

  4. Logboekregistratie inschakelen voor SQL-instructies bij gebruik van JDBC