PostgreSQL Partition mit Beispiel

PostgreSQL Partition mit Beispiel

Die Klausel oder Funktion „Partition by“ oder Funktion von PostgreSQL gehört zur Kategorie der Fensterfunktionen. Die Fensterfunktionen von PostgreSQL sind diejenigen, die Berechnungen durchführen können, die mehrere Zeilen einer Spalte umfassen, jedoch nicht alle Zeilen. Dies bedeutet, dass die Windows -Funktionen im Gegensatz zu den Aggregatfunktionen von PostgreSQL nicht unbedingt einen einzelnen Wert als Ausgabe erzeugen. Heute möchten wir die Verwendung der Klausel oder Funktion von PostgreSQL in Windows 10 untersuchen.

PostgreSQL Partition anhand von Beispielen in Windows 10:

Diese Funktion zeigt die Ausgabe in Form von Partitionen oder Kategorien in Bezug auf das angegebene Attribut an. Diese Funktion nimmt einfach eines der Attribute der PostgreSQL -Tabelle als Eingabe vom Benutzer an und zeigt dann die Ausgabe entsprechend an. Die Klausel oder Funktion „Partition by“ oder Funktion von PostgreSQL ist jedoch am besten für große Datensätze geeignet und nicht für diejenigen, bei denen Sie keine unterschiedlichen Partitionen oder Kategorien identifizieren können. Sie müssen die beiden unten diskutierten Beispiele durchlaufen, um die Verwendung dieser Funktion besser zu verstehen.

Beispiel 1: Extrahieren der durchschnittlichen Körpertemperatur aus den Daten der Patienten:

Für dieses spezielle Beispiel ist es unser Ziel, die durchschnittliche Körpertemperatur der Patienten aus der „Patienten“ -Tabelle herauszufinden. Sie fragen sich vielleicht, ob wir einfach die Funktion „AVG“ von PostgreSQL verwenden können. Warum verwenden wir dann sogar die Klausel „Partition by“ hier. Nun, unsere „Patienten“ -Tabelle besteht auch aus einer Spalte mit dem Namen „doc_id“, die angeben kann, welcher Arzt einen bestimmten Patienten behandelt hat. In diesem Beispiel sind wir daran interessiert, die durchschnittlichen Körpertemperaturen der von jedem Arzt behandelten Patienten zu sehen.

Dieser Durchschnitt wird für jeden Arzt unterschiedlich sein, da sie mit unterschiedlichen Patienten mit unterschiedlichen Körpertemperaturen behandelt wurden. Deshalb ist die Verwendung der Klausel „Partition by“ in dieser Situation obligatorisch. Darüber hinaus werden wir eine bereits vorhandene Tabelle verwenden, um dieses Beispiel zu demonstrieren. Sie können auch eine neue erstellen, wenn Sie möchten. Sie werden dieses Beispiel gut verstehen können, indem Sie die folgenden Schritte durchlaufen:

Schritt 1: Anzeigen der Daten, die die Patiententabelle enthält:

Da wir bereits angegeben haben, dass wir für dieses Beispiel eine bereits vorhandene Tabelle verwenden werden, werden wir versuchen, ihre Daten zuerst anzuzeigen, damit Sie sich die Attribute ansehen können, die diese Tabelle hat. Dafür werden wir die unten gezeigte Abfrage ausführen:

# Wählen Sie * vom Patienten aus;

Aus dem folgenden Bild können Sie sehen, dass die Tabelle „Patienten“ vier Attribute hat, ich.e., PAT_ID (bezieht sich auf die Patienten -ID), pat_name (hält den Namen des Patienten), pat_temp (bezieht sich auf die Körpertemperatur des Patienten) und doc_id (bezieht sich auf die ID des Arztes, die einen bestimmten Patienten behandelt haben).

Schritt 2: Extrahieren der durchschnittlichen Körpertemperatur von Patienten in Bezug auf den Arzt, der sich um sie kümmerte:

Um die durchschnittliche Körpertemperatur von Patienten herauszufinden, die vom Arzt aufgeteilt wurden, der sich um sie kümmerte, werden wir die unten angegebene Abfrage ausführen:

# Pat_id, pat_name, pat_temp, doc_id, avg (pat_temp) over (partition von doc_id) vom Patienten auswählen;

Diese Abfrage berechnet den Durchschnitt der Temperatur der Patienten in Bezug auf den Arzt, der sich um sie kümmerte, und zeigt ihn dann einfach zusammen mit den anderen Attributen der Konsole an, wie im folgenden Bild gezeigt:

Da wir fünf verschiedene Doktor -IDs hatten, haben wir es geschafft, die Durchschnittswerte von fünf verschiedenen Partitionen durch diese Abfrage zu berechnen, ich.e., 99.5, 99, 101.5, 99.5 und 105.5, jeweils.

Beispiel Nr. 2: Extrahieren der durchschnittlichen, minimalen und maximalen Preise, die zu jedem Gerichtstyp aus Mahlzeitdaten gehören:

In diesem Beispiel möchten wir die durchschnittlichen, minimalen und maximalen Preise für jedes Gericht in Bezug auf den Tischtyp aus dem Tisch „Mahlzeiten“ herausfinden. Auch hier werden wir eine bereits vorhandene Tabelle verwenden, um dieses Beispiel zu demonstrieren. Sie können jedoch eine neue Tabelle erstellen, wenn Sie möchten. Sie erhalten eine klarere Vorstellung davon, wovon wir sprechen, nachdem Sie die unten genannten Schritte durchlaufen haben:

Schritt 1: Anzeigen der Daten, die in der Mahlzeittabelle enthält:

Da wir bereits angegeben haben, dass wir für dieses Beispiel eine bereits vorhandene Tabelle verwenden werden, werden wir versuchen, ihre Daten zuerst anzuzeigen, damit Sie sich die Attribute ansehen können, die diese Tabelle hat. Dafür werden wir die unten gezeigte Abfrage ausführen:

# Auswahl * aus dem Essen;

Aus dem folgenden Bild können Sie sehen, dass die Tabelle „Mahlzeit“ drei Attribute hat, ich.e., Dish_Name (bezieht sich auf den Namen des Gerichts), Dish_Type (hält den Typ, zu dem das Gericht gehört, ich.e., Hauptgericht, Starter oder Dessert) und Dish_Price (bezieht sich auf den Preis des Gerichts).

Schritt 2: Extrahieren des durchschnittlichen Gerichtspreises des Gerichts in Bezug auf den TS -Typ, zu dem er gehört:

Um den durchschnittlichen Gerichtspreis des Gerichts herauszufinden, zu dem der TS -Typ, zu dem es gehört, aufgeteilt wird, werden wir die unten angegebene Abfrage ausführen:

# Wählen Sie Dish_Name, Dish_Type, Dish_Price, AVG (Dish_Price) Over (Partition von Dish_Type) von der Mahlzeit;

Diese Abfrage berechnet den Durchschnittspreis der Gerichte in Bezug auf den Schalenart, zu dem sie gehören, und zeigt es dann einfach zusammen mit den anderen Attributen auf der Konsole an, wie im folgenden Bild gezeigt:

Da wir drei verschiedene Gerichtstypen hatten, haben wir es geschafft, die Durchschnittswerte von drei verschiedenen Partitionen durch diese Abfrage zu berechnen, ich.e., 155, 241.67 und 261.67.

Schritt 3: Extrahieren des Mindestpreises des Gerichts in Bezug auf den Gerichtstyp, zu dem es gehört:

Aus ähnlichen Gründen können wir nun den minimalen Schüsselpreis in Bezug auf jeden Gerichtstyp einfach durch Ausführen der unten angegebenen Abfrage extrahieren:

# Wählen Sie Dish_Name, Dish_Type, Dish_Price, Min (Dish_Price) Over (Partition von Dish_Type) von der Mahlzeit;

Diese Abfrage berechnet den minimalen Preis der Gerichte in Bezug auf den Schalenart, zu dem sie gehören, und zeigt es dann einfach zusammen mit den anderen Attributen auf der Konsole an, wie im folgenden Bild gezeigt:

Schritt 4: Extrahieren des maximalen Gerichtspreises des Gerichts in Bezug auf den TS -Typ, zu dem er gehört:

In der gleichen Weise können wir den maximalen Gerichtspreis in Bezug auf jeden Trübungsart einfach durch Ausführung der unten angegebenen Abfrage extrahieren:

# Wählen Sie Dish_Name, Dish_Type, Dish_Price, Max (Dish_Price) Over (Partition von Dish_Type) von der Mahlzeit;

Diese Abfrage berechnet den maximalen Preis der Gerichte in Bezug auf den Schalenart, zu dem sie gehören, und zeigt ihn dann einfach zusammen mit den anderen Attributen auf der Konsole an, wie im folgenden Bild gezeigt:

Abschluss:

Dieser Artikel sollte Ihnen einen Überblick über die Verwendung der PostgreSQL -Funktion "Partition by" geben. Dazu haben wir Sie zum ersten Mal in die Postgresql -Fensterfunktionen vorgestellt, gefolgt von einer kurzen Beschreibung der Funktion „Partition by“. Um die Verwendung dieser Funktion in PostgreSQL in Windows 10 auszuarbeiten, haben wir Ihnen zwei verschiedene Beispiele vorgestellt, mit denen Sie die Verwendung dieser PostgreSQL -Funktion in Windows 10 leicht lernen können.