0Pricing
Coding Interview Prep · Lektion

MIN, MAX und Aggregation nichtnumerischer Werte

Datumsangaben und Zeichenfolgen aggregieren und die Bedeutung von MIN für Text verstehen

MIN, MAX und Aggregation nichtnumerischer Werte ist eine kostenlose Coding Interview Prep-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Coding Interview Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Coding Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

MIN und MAX jenseits von Zahlen

Bewerber gehen davon aus, dass MIN und MAX nur mit Zahlen funktionieren. Interviewer fragen gerne: „Was gibt MAX(name) zurück? Und was ist mit MIN(order_date)?“

Die Wahrheit lautet: MIN und MAX funktionieren mit jedem sortierbaren Datentyp — Zahlen, Datumsangaben und Zeichenfolgen. Die Sortierregeln für die jeweiligen Typen zu verstehen, ist die eigentliche Fähigkeit, die hier geprüft wird.

Der numerische Fall

Beginnen Sie mit dem Vertrauten. Bei numerischen Spalten gibt MIN den kleinsten und MAX den größten Wert zurück. Ganz einfach.

Wie die anderen Aggregatfunktionen ignorieren MIN und MAX NULLs. Ein NULL-Wert ist niemals das Minimum oder Maximum, sondern wird einfach übersprungen. Wenn jeder Wert NULL ist, geben beide NULL zurück.

SELECT MIN(salary) AS lowest, MAX(salary) AS highest
FROM employees;

MIN und MAX für Datumsangaben

Datumsangaben und Zeitstempel sind vollständig sortierbar. Daher liefert MIN(order_date) das früheste Datum und MAX(order_date) das späteste.

So beantworten Sie die Fragen "Wann wurde die erste Bestellung aufgegeben?" (MIN) und "Was ist die aktuellste Aktivität?" (MAX), ohne zu sortieren und das Ergebnis zu begrenzen. Das ist die idiomatische, mengenbasierte Lösung.

SELECT
  MIN(order_date) AS first_order,
  MAX(order_date) AS latest_order
FROM orders;

Datumsabstand in einer Abfrage

Eine häufige Anschlussfrage lautet: "Wie lange ist dieser Kunde bereits aktiv?" Kombinieren Sie MIN und MAX und subtrahieren Sie anschließend.

Damit berechnen Sie den Zeitraum zwischen der ersten und der letzten Bestellung. Die genaue Syntax für die Subtraktion hängt vom SQL-Dialekt ab, aber die Idee mit MIN und MAX ist universell und zeigt, dass Sie Zeiträume deklarativ ausdrücken können.

SELECT
  customer_id,
  MIN(order_date) AS first_order,
  MAX(order_date) AS last_order,
  MAX(order_date) - MIN(order_date) AS active_days
FROM orders
GROUP BY customer_id;

MIN und MAX für Zeichenketten

Hier liegt der Punkt, der viele überrascht: Für Textspalten verwenden MIN und MAX eine lexikografische (alphabetische) Sortierung, die auf der Kollation der Spalte basiert.

Daher liefert MIN(name) den Namen, der alphabetisch zuerst sortiert wird, und MAX(name) den Namen, der zuletzt sortiert wird. MIN über {'Carol', 'Alice', 'Bob'} liefert 'Alice'; MAX liefert 'Carol'.

SELECT MIN(name) AS first_alpha, MAX(name) AS last_alpha
FROM employees;
-- with Alice, Bob, Carol: 'Alice' and 'Carol'

Kollation und Groß-/Kleinschreibung

Die Sortierung von Zeichenketten hängt von der Kollation ab. Diese steuert die Berücksichtigung der Groß-/Kleinschreibung und die Regeln der jeweiligen Region. Bei vielen Standardkollationen können Großbuchstaben vor Kleinbuchstaben sortiert werden, sodass MAX von {'apple', 'Banana'} Sie möglicherweise überrascht.

Erwähnen Sie im Vorstellungsgespräch, dass die Ergebnisse von MIN/MAX für Zeichenketten von der Kollation abhängen. Diese Nuance unterscheidet eine auswendig gelernte Antwort von echtem Verständnis.

Was MIN(text) NICHT bedeutet

Ein häufiges Missverständnis besteht darin, dass MIN(name) die kürzeste Zeichenkette oder MAX(name) die längste zurückgibt. Das ist nicht der Fall. Es geht ausschließlich um die Sortierreihenfolge, nicht um die Länge.

Wenn Sie tatsächlich die längste Zeichenkette benötigen, sortieren Sie nach LENGTH(name) und wählen die erste Zeile aus oder verwenden MAX(LENGTH(name)), wenn Sie nur die Länge benötigen. Verwechseln Sie die Sortierung von Werten nicht mit ihrer Länge.

SELECT MAX(LENGTH(name)) AS longest_name_length
FROM employees;

MIN/MAX kombinieren keine Spalten

Wichtiger Fallstrick: MIN und MAX arbeiten jeweils unabhängig auf einer einzelnen Spalte. Sie geben nicht die gesamte Zeile zurück, die den Minimal- oder Maximalwert enthält.

Wenn Sie ohne Gruppierung SELECT MIN(salary), name schreiben, erhalten Sie nicht den Namen der Person mit dem niedrigsten Gehalt — je nach SQL-Dialekt erhalten Sie einen Fehler oder einen beliebigen Namen. Um die vollständige Zeile abzurufen, verwenden Sie ORDER BY + LIMIT oder eine Fensterfunktion.

-- Wrong assumption: this does NOT give the lowest earner's name.
-- Correct approach to get the whole row:
SELECT name, salary
FROM employees
ORDER BY salary ASC
LIMIT 1;

NULL-Verhalten bei MIN/MAX im Überblick

Genau wie SUM und AVG ignorieren MIN und MAX NULL-Werte. Ein NULL-Wert ist weder der kleinste noch der größte Wert.

  • Gemischte Werte und NULL-Werte: NULL-Werte werden ignoriert, das tatsächliche Minimum bzw. Maximum wird zurückgegeben.
  • Ausschließlich NULL-Werte oder keine Zeilen: MIN und MAX geben NULL zurück.

Diese Konsistenz bei Aggregatfunktionen lässt sich gut so zusammenfassen: "Alle Standard-Aggregatfunktionen ignorieren NULL-Werte."

Gruppierung verwenden

Zusammen mit GROUP BY spielen MIN und MAX ihre Stärke bei gruppenweisen Extremwerten aus. "Höchstes Gehalt pro Abteilung" ist ein klassisches Beispiel.

Die Abfrage gibt eine Zeile pro Abteilung mit dem höchsten Gehalt dieser Abteilung zurück. Denken Sie daran: Sie liefert den Wert, nicht den Mitarbeiter. Den Namen zusammen mit diesem Wert abzurufen, ist ein separates und häufiges Anschlussproblem.

SELECT department, MAX(salary) AS top_salary
FROM employees
GROUP BY department;

So antworten Sie souverän

Eine überzeugende Antwort im Vorstellungsgespräch lautet: "MIN und MAX funktionieren mit jedem sortierbaren Datentyp. Bei Zahlen liefern sie den kleinsten bzw. größten Wert, bei Datumsangaben das früheste bzw. späteste Datum und bei Zeichenketten die alphabetische Reihenfolge gemäß der Kollation der Spalte. Sie ignorieren NULL-Werte und geben nur dann NULL zurück, wenn kein Nicht-NULL-Wert vorhanden ist. Sie geben einen einzelnen Wert zurück, nicht die vollständige Zeile. Um die Zeile abzurufen, würde ich ORDER BY mit LIMIT oder eine Fensterfunktion verwenden."

Kurze Überprüfung

Überlegen Sie, wie die Aggregation von Zeichenketten funktioniert.

Zusammenfassung

Alles Wichtige zu MIN und MAX:

  • Sie funktionieren mit jedem sortierbaren Typ: Zahlen, Datumsangaben und Zeichenketten.
  • Bei Zeichenketten gilt die alphabetische Reihenfolge gemäß der Kollation, nicht die Länge.
  • Datumsangaben: MIN = frühestes Datum, MAX = spätestes Datum.
  • Sie ignorieren NULL-Werte; bei ausschließlich NULL-Werten oder ohne Zeilen wird NULL zurückgegeben.
  • Sie geben einen Wert zurück, nicht die vollständige Zeile — verwenden Sie dafür ORDER BY + LIMIT.

Als Nächstes: Was passiert, wenn Sie Aggregatfunktionen ohne GROUP BY verwenden?

Häufig gestellte Fragen

Ist die Lektion „MIN, MAX und Aggregation nichtnumerischer Werte“ kostenlos?

Ja — der vollständige Text von „MIN, MAX und Aggregation nichtnumerischer Werte“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Coding Interview Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Coding Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „MIN, MAX und Aggregation nichtnumerischer Werte“?

Datumsangaben und Zeichenfolgen aggregieren und die Bedeutung von MIN für Text verstehen Du übst Coding Interview Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Coding Interview Prep zu starten?

Keine Vorkenntnisse erforderlich. Coding Interview Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „MIN, MAX und Aggregation nichtnumerischer Werte“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Coding Interview Prep-Lektion Code schreiben und ausführen?

Ja. Jede Coding Interview Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. COUNT(*) vs. COUNT(column) vs. COUNT(DISTINCT)
  2. SUM und AVG mit NULL-Werten
  3. MIN, MAX und Aggregation nichtnumerischer Werte
  4. Aggregatfunktionen ohne GROUP BY
← Zurück zu Coding Interview Prep