Einführung

In diesem Artikel lernen wir, die Aggregate Max-Funktion in unseren Postgres SQL-Befehlen aus mehreren Perspektiven zu verwenden, um ein tieferes Verständnis zu erlangen. Hier werden wir diskutieren:

  • Was? Was macht die MAX-Funktion aus Anfängersicht?
  • Warum? In welchen Situationen sollten wir die Funktion Max () verwenden?
  • Wie? Wie verwenden wir diese Funktion in unserem SQL?
  • Mehr Wir werden auch das GROUP BY-Konstrukt verwenden.

Voraussetzungen

  • Verständnis für das Schreiben von SQL für PostgreSQL (oder Oracle, MySQL, MS SQL Server usw.) mit dem PG Admin-Tool oder einem anderen DB-Verwaltungstool oder über Code- oder Skript- / Codierungssprachen wie PHP, Python, Javascript, Java, C #, ASP.Net, VB.Net , Ruby, Knoten.js, etc.), die eine Datenbankverbindung sowie eine Methode zum Senden der Datenbank-SQL-Abfragen bereitstellen, um Daten abzurufen oder Änderungen an Ihrer Datenbank vorzunehmen.
  • Verständnis der Verwendung einiger grundlegender SQL-Anweisungen (PL/ SQL) wie SELECT, FROM und GROUP BY.
  • Wissen, was ein String und eine Funktion sind.

Was ist die Funktion MAX() und wie funktioniert sie?

Die Funktion Postgres MAX() gibt den höchsten (maximalen) Wert aus einer Reihe von Zahlen zurück.

Syntax

1
i_highest_of_set := MAX(set_of_nummern);

Warum und wann verwenden wir die Funktion MAX()?

Jedes Mal, wenn Sie eine Reihe von Zahlen haben, bei denen Sie wissen möchten, welche dieser Mengen die höchste in der Menge ist.

Beginnen wir mit einem einfachen Beispiel

Wir beginnen mit einem leicht verständlichen Beispiel. Unser anfänglicher Datensatz ist eine Tabelle namens coding_languages.

id_tech t_name i_rapid_dev
0 Python 7
1 Java 5
2 PHP 9
3 Javascript aktivieren 8

In unserer Softwareentwicklungsfirma hat die obige Tabelle mit dem Namen coding_languages drei Felder, darunter:

  • id_tech ist unsere eindeutige Kennung.
  • t_name ist der Name der Programmiersprache.
  • i_rapid_dev ist eine ganzzahlige Bewertung, wie schnell sich ein durchschnittlicher Programmierer mit der Sprache entwickeln kann.

Ziel ist es herauszufinden, welche Sprache die höchste Bewertung in Bezug auf die schnelle Entwicklung hat (i_rapid_dev). Schreiben wir unser SQL-Skript, um mit der Funktion MAX das t_name abzurufen, das den höchsten Wert in der Spalte i_rapid_dev in unserem PostgreSQL-Datenbank-Recordset hat:

1
2
3
4
5
6
7
8
SELECT
id_tech
, t_name
, MAX(i_rapid_dev)
FROM
coding_languages
GROUP BY
i_rapid_dev;

Hinweis für das SQL-Beispiel oben: Hier verwenden wir unser Wissen über SQL-Gruppen. Sie können es sich so vorstellen: Wenn Sie das Maximum von mehr als einer Zahl finden möchten, müssen Sie eine Reihe von Zahlen berücksichtigen.

Wie funktioniert die obige SQL-Anweisung? Wir machen es Schritt für Schritt:

  • (1) SELECT: Wir teilen der SQL-Engine von PostgreSQL mit, dass wir ein Maximum aller Werte (weil keine WHERE- oder HAVING-Klausel) in der Spalte i_rapid_dev haben möchten.
  • (2) FROM: Angabe der coding_languages -Tabelle zum Abrufen unserer Daten.
  • (3) GROUP BY: Postgres mitteilen, dass wir die Daten gruppieren möchten. Die Funktion MAX () als Aggregatfunktion erfordert die Gruppierung unserer Daten.

Die obige Abfrage gibt zurück|/ id_tech | t_name / i_rapid_dev ||:—:|—|————:|/ 2 / PHP | 9 /

Wir wissen jetzt, dass PHP in Bezug auf die schnelle Entwicklung am schnellsten ist.

Ein weiteres Beispiel für die Verwendung der SQL-Funktion „Max“ in PostgreSQL

Das Mini-Projekt: Wir hatten Mitarbeiter, die die in unserem Unternehmen verwendeten Technologien bewerteten und die am höchsten bewertete Technologie kennen wollten. Hier werden wir eine andere relativ einfache Verwendung von MAX() untersuchen, während wir das Schlüsselwort „HABEN“ einführen. Hier ist unser „roher“ Datensatz mit dem Tabellennamen „technologies“:

id_tech t_name_user t_name_tech t_category_tech i_grad
0 Ted Java Sprachen 4
1 Bif Mongo NoSQL 16
2 Susan MySQL RDB 8
3 Tim PostgreSQL RDB 16
4 Gary Python Deutsch 20
5 Sammy PHP Deutsch 12

Lassen Sie uns planen, wie es weitergeht. Wir möchten eine Abfrage erstellen, die mehr als eine Sache erledigt, einschließlich:

  • (1) Berücksichtigen Sie nur die Zeilen in unserem Datensatz, in denen der Wert des _t_categorytech-Felds (Spalte) gleich „Lang“ ist. Hier kommt die HAVING-Klausel ins Spiel. Es wird 3 Reihen ergeben. Kannst du sehen, warum? Hinweis: Suchen Sie in der obigen Tabelle nach dem Wert „Lang“. Beachten Sie, es gibt drei? In welcher Spalte befinden sie sich?
  • (2) Geben Sie den Wert im Feld _t_nametech für diese 3 Zeilen zurück, da wir wissen möchten, zu welchen Technologien die Noten gehören.
  • (3) Es ist uns egal, wer die Bewertung vorgenommen hat, daher wird die Spalte _t_nameuser nicht erwähnt.
  • (4) Ermitteln Sie mit der Spalte _igrade die MAXIMALE SUMME der Werte dieser 3 Zeilen.
  • (5) Verwenden Sie GROUP BY, um die entsprechenden Spalten zu gruppieren.

Analyse des obigen SQL:

  • (1) SELECT: Wir filtern unsere Postgres-Tabelle nach: (a) Zeigen Sie die Spalte t_name_tech an, (b) berechnen Sie die Summe der Noten (Sum(i_grade)) für jede gegebene Technologie und (c) Zeigen Sie das Maximum dieser Summen (Max(i_sum_of_grades)) und benennen Sie das Ergebnis als i_highest_grade.
  • (2) FROM: Angabe der Tabelle coding_languages als Quelle unserer Daten.
  • (3) GROUP BY: Benachrichtigen von PostgreSQL, dass wir gruppieren. Die Funktion MAX erfordert, dass wir die Daten gruppieren, die Postgres intern zusammenfasst und die höchste findet.
  • (4) HAVING: Hier weisen wir PostgreSQL an, die Zeilen mit „Lang“ im Feld t_category_tech zu filtern.

Die obige Abfrage gibt zurück:

t_name_tech t_category_tech i_grad
PHP Sprachen 12

Anmerkungen

  • Warum haben wir einige unserer Variablen und Tabellenspalten mit dem Präfix „i“ oder „t“ benannt? Wir verwenden „i“ als Ganzzahl und „t“ als Text oder Zeichenfolge.
  • Wir laden Sie ein, nach unseren anderen Artikeln zu suchen, die die leistungsstarke GROUP BY Postgres-Klausel verwenden.

Fazit

Hier haben wir gelernt, wann und wie es am besten ist, die Funktion MAX() in PostgreSQL zu verwenden, um die höchstwertige Zahl in einer Reihe von Zahlen zu finden. Wir haben sowohl Anfänger als auch schwierigere Beispiele verwendet, um den Lernprozess so einfach wie möglich zu gestalten, da SQL manchmal schwierig zu handhaben ist, insbesondere wenn Sie die Klauseln GROUP BY und HAVING verwenden, um mit Teilmengen von Daten zu arbeiten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.