Zurück zur Artikelliste Artikel
6 Leseminuten

Die SQL-Funktion MIN()

SQL verfügt über eine Vielzahl von leistungsstarken Aggregatwerkzeugen, darunter die SQL-Funktion MIN(). Dieser Artikel ist eine Kurzanleitung zum Extrahieren und Verwenden von Mindestwerten in Ihren Abfragen.

In der heutigen hart umkämpften Geschäftswelt ist es von entscheidender Bedeutung, die Daten Ihres Unternehmens effektiv analysieren zu können, um fundierte Entscheidungen zu treffen. Mit den Aggregatfunktionen von SQL können Sie alle Arten von statistischen Analysen mit Ihren Daten durchführen.

Dieser Artikel ist ein Referenzhandbuch für die SQL-Funktion MIN(), die das kleinste Element aus einer Datenspalte extrahiert.

Wenn Sie neu in SQL sind, könnte unser interaktiver Kurs SQL für Anfänger für Sie interessant sein. Ausgehend von der Anfängerstufe werden Sie die nützlichsten Funktionen von SQL beherrschen. Sie lernen die Konzepte relationaler Datenbanken kennen und erfahren, wie Sie Daten extrahieren und mithilfe von Gruppierungen und Aggregaten analysieren können.

Sie stellen über Ihren Browser eine Verbindung zu einer Datenbank her und üben Ihre neuen Kenntnisse in 129 interaktiven Übungen. Die Dauer des Kurses beträgt etwa 10 Stunden.

Kommen wir nun zurück zur Funktion MIN(). Sehen wir uns zunächst den Datensatz an.

Beispieldaten

Alle Beispiele in diesem Artikel verwenden die unten stehenden Daten, die eine Teilmenge der MySQL-Beispieldatenbank für Angestellte sind. Die Daten befinden sich in einer Tabelle namens employee_data.

emp_nobirth_datefirst_namelast_namesalarydept_nameterm_date
100021984-06-02BezalelSimmel72527Sales2022-05-31
100041974-05-01ChirstianKoblick74057Production
100061973-04-20AnnekePreusig60098Development
100081978-02-19SaniyaKalloufi52668Development
100121980-10-04PatricioBridgland54794Development
100141976-02-12BerniGenin60598Development
100161981-05-02KazuhitoCappelletti77935Sales2020-12-31

Einfache Beispiele für die SQL-Funktion MIN()

Beispiel 1: Einfache MIN()-Funktion

Die Funktion MIN() extrahiert den Mindestwert aus einer Spalte. In ihrer einfachsten Form könnten Sie die folgende Abfrage verwenden, um die Frage zu beantworten: Wie viel verdient der am schlechtesten bezahlte Mitarbeiter jährlich?

SELECT 
  MIN(salary) 
FROM employee_data;

Dies ergibt die folgenden Ergebnisse:

min(salary)
52668

Beachten Sie, dass die Funktion MIN(), wie alle anderen SQL-Aggregate, immer von einem Spaltennamen in Klammern gefolgt wird. In diesem Beispiel durchsucht SQL die gesamte Tabelle und extrahiert den niedrigsten Wert für die genannte Spalte.

Beispiel 2: Verwendung von MIN() mit anderen Aggregatfunktionen

Sie können natürlich auch andere Aggregatfunktionen in Ihre Ergebnisse einbeziehen, etwa so:

SELECT 
  MIN(salary), 
  MAX(salary), 
  AVG(salary) 
FROM employee_data;

Ihre Ergebnisse würden wie folgt aussehen:

min(salary)max(salary)avg(salary)
526687793564668.143

Weitere Beispiele finden Sie unter SQL MIN() und MAX() Funktionen erklärt in 6 Beispielen.

Beispiel 3: Verwendung von MIN() mit einem arithmetischen Ausdruck

Sie können auch arithmetische Ausdrücke mit der Funktion MIN() verwenden. Wenn Sie das monatliche Mindestgehalt und nicht das jährliche Mindestgehalt abfragen möchten, würde Ihre Abfrage lauten:

SELECT MIN(salary/12) AS min_monthly_salary
FROM employee_data;

Das Ergebnis für diese Abfrage ist:

min_monthly_salary
4389

Nicht-Standardbeispiele für die MIN()-Funktion

Beispiel 4: Verwendung von MIN() für Datums-/Datumszeitspalten

Die Funktion MIN() funktioniert ebenso gut mit nicht-numerischen Daten.

Sie kann mit Datums- und Datetime-Datentypen verwendet werden, um das früheste Datum oder die früheste Uhrzeit zu extrahieren. Wenn Sie das Geburtsdatum des jüngsten Mitarbeiters in der Firma finden möchten, würde Ihre Abfrage wie folgt aussehen:

SELECT MIN(birth_date) 
FROM employee_data;

Dies ergibt die folgenden Ergebnisse:

min(birth_date)
20/4/1973

Beispiel 5: Verwendung der SQL-Funktion MIN() für Textspalten

Für Zeichenketten-Datentypen wie CHAR, VARCHAR und TEXT extrahiert die SQL-Funktion MIN() den ersten Wert in alphabetischer Reihenfolge aus der Spalte.

Wenn Sie den ersten Abteilungsnamen in alphabetischer Reihenfolge in der Tabelle employee_data Tabelle suchen, würde die Abfrage wie folgt lauten:

SELECT MIN(dept_name) 
FROM employee_data

Hier sind die Ergebnisse:

min(dept_name)
Development

Sie werden feststellen, dass der Abteilungsname nur einmal in den Ergebnissen erscheint, obwohl mehrere Mitarbeiter zur Entwicklungsabteilung gehören.

Verwendung der SQL-Funktion MIN() mit GROUP BY

Die Funktion MIN() kann, wie alle SQL-Aggregatfunktionen, in Verbindung mit der GROUP BY-Klausel verwendet werden. Diese Klausel weist SQL an, ähnliche Zeilen zusammenzufassen und für jede Gruppe eine einzelne Zeile auszugeben. Wenn Sie zum Beispiel die Beispieldaten nach Abteilung gruppiert haben, würde Ihre Ergebnismenge eine Zeile für jede Abteilung enthalten.

Wenn Sie mit der GROUP BY-Klausel und ihrer Verwendung noch nicht vertraut sind, helfen Ihnen vielleicht diese 5 Beispiele für GROUP BY.

Wenn Sie die Funktion MIN() zusammen mit der Klausel GROUP BY verwenden, sehen Sie den Mindestwert in jeder Gruppe. Wenn Sie zum Beispiel das niedrigste Gehalt in jeder Abteilung sehen möchten, würde Ihre Abfrage wie folgt aussehen:

SELECT 
  dept_name, 
  MIN(salary) 
FROM employee_data 
GROUP BY dept_name;

Die Abfrageergebnisse würden wie folgt aussehen:

dept_nameMIN(salary)
Sales72527
Production74057
Development52668

Sie können auch die ORDER BY-Klausel verwenden. Wenn Sie die Ergebnisse in der Reihenfolge des Mindestgehalts haben möchten, würde Ihre Abfrage wie folgt aussehen:

SELECT 
  dept_name, 
  MIN(salary) 
FROM employee_data 
GROUP BY dept_name
ORDER BY MIN(salary);

Die Ergebnismenge erscheint dann in der Reihenfolge des Mindestgehalts, vom niedrigsten zum höchsten:

dept_nameMIN(salary)
Development52668
Sales72527
Production74057

Wenn Sie das Gefühl haben, dass Sie etwas Übung mit der Gruppierung von Daten in SQL brauchen, finden Sie einige nützliche Übungen in 10 GROUP BY SQL-Praxis Übungen mit Lösungen.

Verwendung der MIN()-Funktion in HAVING

Sie können Aggregatfunktionen verwenden, um die Ergebnismenge zu filtern. Normalerweise werden Auswahlkriterien mit einer WHERE-Klausel definiert, aber Sie können WHERE nicht zum Filtern nach einem Aggregat verwenden. Stattdessen müssen Sie die HAVING-Klausel verwenden.

Um alle Abteilungen zu finden, in denen das Mindestjahresgehalt größer als 60k ist, würde Ihre Abfrage wie folgt lauten:

SELECT dept_name, MIN(salary) 
FROM employee_data 
GROUP BY dept_name
HAVING MIN(salary) > 60000
ORDER BY MIN(salary);

Beachten Sie, dass die HAVING -Klausel zusammen mit der GROUP BY -Klausel verwendet werden muss und dass sie nach der GROUP BY -Klausel, aber vor der ORDER BY-Klausel platziert wird.

Die Ergebnisse sind:

dept_nameMIN(salary)
Sales72527
Production74057

Wirken sich Nullwerte auf die MIN()-Funktion aus?

Die SQL-Funktion MIN() ignoriert bei der Berechnung des Minimums alle Zeilen, die einen Nullwert enthalten. Der zurückgegebene Wert ist daher der niedrigste Nicht-Null-Wert in der angegebenen Spalte.

In den Beispieldaten haben nur zwei Zeilen Werte im Abschlussdatum. In allen anderen Zeilen ist diese Spalte auf NULL gesetzt. Wenn Sie nach dem Mindestbeendigungsdatum gesucht haben, sollten Sie den niedrigsten Wert erhalten, der nicht Null ist. Probieren wir es aus:

SELECT 
  MIN(term_date) 
FROM employee_data;

Dies gibt das kleinste Datum zurück, wobei die Nullwerte ignoriert werden:

MIN(term_date)
31/12/2020

Die Funktion MIN() würde nur dann einen NULL-Wert zurückgeben, wenn alle Werte in der Spalte NULL wären.

Weiter mit der MIN()-Funktion von SQL

Wir haben die Verwendungsmöglichkeiten von MIN() erkundet, aber Ihre Lernreise hat gerade erst begonnen; es gibt noch viel mehr zu entdecken! Eine kurze Anleitung zur Verwendung der SQL-Funktion MIN() finden Sie in diesen beiden Kochbüchern:

Um ein Thema wirklich gut zu lernen, gibt es nichts Besseres als praktische Problemlösungen. Unser SQL-Praxis Kurs stellt Ihnen eine Reihe von Aufgaben, die denen in der realen Welt ähneln, und bietet Ihnen jederzeit Hilfe, wenn Sie nicht weiterkommen.

Und schließlich bietet LearnSQL.de eine große Auswahl an Kursen, die Ihnen in jeder Phase Ihres Lernprozesses helfen sollen. Wenn Sie ernsthaft ein SQL-Experte werden wollen, empfehle ich Ihnen unseren Lernkurs SQL von A bis Z. Dieser Kurs besteht aus 7 interaktiven Kursen, die Sie von Anfängern bis hin zu fortgeschrittenen Funktionen führen.

Machen Sie den nächsten Schritt und bringen Sie Ihre Karriere voran, indem Sie ein SQL-Experte werden!