CodeGym /Kurse /SQL SELF /Minimale und Maximale Werte: MIN() und

Minimale und Maximale Werte: MIN() und MAX()

SQL SELF
Level 7 , Lektion 4
Verfügbar

Lass uns in die Welt der Extreme in Daten eintauchen – das Suchen nach minimalen und maximalen Werten. Keine Sorge, SQL zwingt dich nicht, etwas völlig Neues zu lernen, aber wir checken, wie man die größten und kleinsten Werte in Tabellen findet. Diese Funktionen sind überall am Start: vom Auswerten der IMDb-Filmratings bis zum Berechnen der minimalen Temperatur auf dem Mars.

MIN() und MAX() sind Aggregatfunktionen, die den minimalen bzw. maximalen Wert aus einem Datensatz zurückgeben. Sie funktionieren wie freundliche Extremwertjäger: MIN() sucht das kleinste Element, MAX() dagegen das größte. Und das geht nicht nur mit Zahlen: Du kannst auch minimale und maximale Strings oder Daten suchen.

-- Allgemeine Form von MIN und MAX
SELECT 
    MIN(column_name) AS min_value,
    MAX(column_name) AS max_value
FROM table_name;

Easy und simpel! Jetzt schauen wir uns an, wie diese Magie in verschiedenen Szenarien läuft.

Syntax und Basic-Beispiele

Numerische Daten

Angenommen, wir haben eine Tabelle employees mit einer Spalte für die Gehälter der Mitarbeiter (salary).

Wir wollen das minimale und maximale Gehalt wissen.

Tabelle employees

id name salary
1 Anna Song 45000
2 Otto Art 30000
3 Maria Chi 120000
4 Alex Lin 90000
5 Eva Tan 60000
-- Beispiel für numerische Daten
SELECT 
    MIN(salary) AS min_salary,
    MAX(salary) AS max_salary
FROM employees;

Ergebnis

min_salary max_salary
30000 120000

Textdaten

Du kannst MIN() und MAX() auch mit Textdaten nutzen.

Sie werden alphabetisch verglichen (ja, sogar Buchstaben können "am kleinsten" oder "am größten" sein).

Stell dir vor, wir haben eine Tabelle students, in der die Spalte name die Namen der Studierenden enthält.

Tabelle students

id name
1 Anna
2 Otto
3 Maria
4 Ben
5 Zoe
-- Beispiel für Textdaten
SELECT 
    MIN(name) AS first_name_in_order,
    MAX(name) AS last_name_in_order
FROM students;

Ergebnis

first_name_in_order last_name_in_order
Anna Zoe

Datum und Zeit
Wir suchen das früheste und späteste Datum aus der Tabelle events.

Tabelle events

id event_name event_date
1 New Year Party 2023-01-01
2 Summer Fest 2023-06-15
3 Halloween Bash 2023-10-31
4 Year End Gala 2023-12-31
-- Beispiel für Arbeit mit Daten
SELECT 
    MIN(event_date) AS earliest_date,
    MAX(event_date) AS latest_date
FROM events;

Ergebnis

earliest_date latest_date
2023-01-01 2023-12-31

Verwendung von MIN() und MAX() in Tabellen mit NULL-Werten

Wenn es in der Spalte NULL-Werte gibt, kannst du ganz entspannt bleiben: SQL ignoriert sie bei den Berechnungen.

Das heißt, MIN() und MAX() arbeiten nur mit den "normalen" Werten.

Tabelle employees_with_null

id name salary
1 Otto 30000
2 Maria NULL
3 Anna 120000
4 John NULL
-- Tabelle mit NULL
SELECT 
    MIN(salary) AS min_salary,
    MAX(salary) AS max_salary
FROM employees_with_null;

Wenn es in der Spalte salary Einträge mit NULL gibt, werden sie einfach ignoriert.

min_salary max_salary
30000 120000

Aber wenn die GANZE Spalte nur aus NULL besteht, ist das Ergebnis NULL.

Beispiele für die Verwendung von MIN() und MAX() in echten Aufgaben

Bestimmung des ältesten und jüngsten Mitarbeiters

Tabelle employees

id name birth_date
1 Otto 1980-05-10
2 Maria 1990-11-20
3 Anna 1975-03-15
4 John 2000-08-01

In der Tabelle employees gibt es das Feld birth_date, das die Geburtsdaten der Mitarbeitenden speichert. Lass uns den ältesten und den jüngsten bestimmen.

SELECT
    MIN(birth_date) AS oldest_employee,
    MAX(birth_date) AS youngest_employee
FROM employees;

Ergebnis:

oldest_employee youngest_employee
1975-03-15 2000-08-01

Verkaufsanalyse

id amount
1 150.00
2 75.50
3 200.00
4 120.00
5 500.00
6 90.00

In der Tabelle sales gibt es das Feld amount, das die Verkaufssummen speichert. Lass uns den minimalen und maximalen Verkaufsbetrag finden.

SELECT
    MIN(amount) AS smallest_sale,
    MAX(amount) AS largest_sale
FROM sales;

Ergebnis der Abfrage

smallest_sale largest_sale
75.50 500.00

Suche nach den allerersten und allerletzten Bestellungen

Wenn du eine Tabelle orders mit dem Feld order_date hast, kannst du easy das erste und letzte Bestelldatum rausfinden.

Originaltabelle orders

order_id customer_id order_date amount
101 1 2023-01-15 10:23:00 250.00
102 2 2023-02-10 14:45:00 150.00
103 3 2023-01-05 09:10:00 300.00
104 1 2023-03-22 16:30:00 500.00
105 4 2023-01-25 11:00:00 120.00
SELECT
    MIN(order_date) AS first_order,
    MAX(order_date) AS last_order
FROM orders;

Ergebnis der Abfrage:

first_order last_order
2023-01-05 09:10:00 2023-03-22 16:30:00

Besonderheiten von MIN() und MAX()

String-Vergleich: Bei Strings vergleichen MIN() und MAX() alphabetisch.

Arbeiten mit NULL: NULL wird ignoriert, wenn es andere Werte in der Spalte gibt. Aber wenn alle Werte NULL sind, ist das Ergebnis NULL.

Vergleich von Daten: SQL beachtet nicht nur das Jahr, sondern auch Monat, Tag, Stunde, Minute.

1
Umfrage/Quiz
Datenaggregation, Level 7, Lektion 4
Nicht verfügbar
Datenaggregation
Datenaggregation
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION