PostgreSQL Ntile Fensterfunktion

PostgreSQL Ntile Fensterfunktion
Fenstermethoden in PostgreSQL wurden abgeschaltet, um unterschiedliche Daten zu gleichzusetzen. Die NTILE () -Methode, gefolgt von der Überklausel in PostgreSQL, wird verworfen, um organisierte Reihen in etwas wie eine Reihe von abgestuften Eimern zu teilen. Eimer sind nichts mehr als eine Reihe von Ranglistengruppen. In diesem Artikel werden Sie feststellen. Die NTILE () -Methode verteilt jeder Gruppe, die bei 1 in einem Satz beginnt, eine Eimer -Nummer.

Syntax:

>> ntile (Buckets) over ([Partition nach Partitionsausdruck,…] [Verordnung durch Sortierausdruck]) [ASC | Desc],…]);

Um die ntile Methode zu verstehen, melden Sie sich von der PostgreSQL -Shell an. Aus diesem Grund versuchen. Um auf einem anderen Server zu arbeiten, geben Sie den Namen eines Servers ein. Andernfalls drücken Sie die Eingabetaste. Wenn Sie in der zuvor festgelegten Datenbank üben müssen, e.G., Postgres, dann drücken.G. 'prüfen'. Um einen anderen Port als 5432 zu verwenden, schreiben Sie ihn aus; Wenn nicht, lassen Sie es so wie es ist, und drücken. Es kann Sie auffordern, den Benutzernamen einzugeben, falls Sie auf einen neuen Benutzernamen wechseln müssen. Geben Sie den Benutzernamen ein; Ansonsten drücken Sie einfach die Eingabetaste. Schließlich müssen Sie Ihr gegenwärtiges Benutzerkennwort einsetzen, um die Befehlszeile zu wechseln, indem Sie diesen bestimmten Benutzer als darunter verwenden. Anschließend können Sie mit effektiven Einträgen aller obligatorischen Daten an der Arbeit an NTILE arbeiten.

Um an NTILE zu arbeiten, müssen Sie eine neue Tabelle mit dem Befehl erstellen erstellen, wenn Sie keine haben. Überlegen Sie sich die untergespielte Tabelle „Mitarbeiter“ in Ihrer PostgreSQL-Datenbank, die als "Test" bezeichnet wird. Diese Tabelle enthält vier Spalten e.G., ID, Name, Alter und Gehalt eines Mitarbeiters eines bestimmten Unternehmens. Jede Spalte enthält insgesamt 10 Zeilen, dh 10 Datensätze in jedem Spaltenfeld.

>> aus dem Mitarbeiter auswählen;

Zu Beginn müssen wir das einfache Konzept des Abholens von Datensätzen aus einer Tabelle mit der Bestellung nach Klausel verstehen. Wir haben den folgenden SELECT -Befehl ausgeführt, ohne NTILE zu verwenden, um das Konzept kurz zu erläutern und zu verstehen. Wir holen Datensätze für Spalten; Name, Alter und Gehalt beim Sortieren der Aufzeichnungen in der aufsteigenden Reihenfolge des Feldes „Alter“. Sie können sehen, dass lediglich die im Bild angegebenen Datensätze angezeigt werden.

>> Name, Alter, Gehalt von Mitarbeiterordnung nach Alter;

Verwendung von ntile () mit der Bestellung nach Klausel:

Unter der Annahme derselben Tabelle „Mitarbeiter“ beginnen wir mit ntile () über Klausel in unserem Beispiel zu verwenden. In diesem Beispiel haben wir die beiden Spalten ausgewählt. Name und Gehalt, während das Ergebnis im Zusammenhang mit der aufsteigenden Reihenfolge einer Spalte „Gehalt“ sortiert wird. Das Ergebnis enthält Daten, bei denen das Alter eines Mitarbeiters größer als 24 Jahre ist. Wir haben den Wert des ntilen Eimers als „3“ definiert, weil wir Zeilen in 3 Eimer teilen wollen, e.G., 1 bis 3. Sie können sehen, dass die Zeilen erfolgreich in 3 gleiche Eimer unterteilt wurden, die 3 Zeilen in jedem Eimer enthalten.

>> Name, Gehalt, ntile (3) über (bestellen nach Gehalt) von Angabene, wo Alter> '24';

Nehmen wir nun ein anderes Beispiel, während wir denselben Tabellen „Mitarbeiter“ verwenden,. Diesmal möchten wir die Datensätze von drei Spalten abrufen. Name, Alter und Gehalt mit der Auswahl der Abfrage in der Befehlsschale. Es gibt leichte Änderungen in der Where -Klausel. Derzeit haben wir nach den Aufzeichnungen der Tabelle „Mitarbeiter“ gesucht, in der das Alter weniger als 27 Jahre beträgt, wobei nur die Aufzeichnungen mit weniger als 27 Jahren erhalten werden. Andererseits gibt es keine Änderung eines Eimerwerts, da es wieder 3 ist. Mit dem angegebenen Befehl haben wir nur drei Datensätze gefunden, die gleichermaßen in 3 Eimer unterteilt sind, wie auf dem Bild angezeigt.

>> Wählen Sie Name, Alter, Gehalt, ntile (3) über (Bestellung nach Gehalt) des Arbeitnehmers WO ALTER < '27';

Verwendung von ntile () über mit der Ordnung nach und der Partition nach Klausel: Klausel:

Lassen Sie uns ein Beispiel für ntile () haben, während sie Partition von und ordnen Sie gleichzeitig nach Klauseln. Nehmen wir an, dass die unveränderte Tabelle „Mitarbeiter“ aus einer Datenbank „Test“ verwendet wird. In diesem Beispiel müssen Sie die drei Spalten auswählen. Name, Alter und Gehalt, während sie in der aufsteigenden Art eines Feldes „Alter“ sortiert werden. Außerdem haben wir die Partition per Klausel in der Spalte „Gehalt“ verwendet, um nach dieser Spalte Partitionen einer Tabelle zu machen. Es gibt keine spezifische Bedingung, die in dieser bestimmten Abfrage verwendet wurde, was bedeutet, dass alle Datensätze der Tabelle „Mitarbeiter“ angezeigt werden. Der ntile Eimer hat einen Wert von „3“. Bei der Ausführung der folgenden Abfrage sehen Sie das folgende Ergebnis. Die Partitionen werden gemäß den unterschiedlichen Werten des Spalte „Gehalts“ durchgeführt. Alle Werte des Spalte „Gehalt“ sind unterschiedlich. Deshalb liegt es in verschiedenen Partitionen mit Ausnahme des Werts „60000“. Dies bedeutet. Danach wurden alle Trennreihen durch Eimer eingestuft. Nur ein Eimer bekam den 2. Rang.

>> Name, Alter, Gehalt, ntile (3) über (Partition nach Gehalt, Ordnung nach Alter) vom Mitarbeiter;

Das gleiche Beispiel von ntile () mit der Verwendung von Partition nach und der Ordnung nach Klausel mit einer Where -Klausel übernehmen. In der Klausel haben wir den Zustand definiert, der besagt, dass die einzigen Aufzeichnungen, die abgerufen werden. Wir haben nur 3 Ergebnisse mit 2 Partitionen gemäß Age und "Ntile" -Säule mit Rängen erhalten.

>> Wählen Sie Name, Alter, Gehalt, ntile (3) über (Partition nach Gehalt, Ordnung nach Alter) vom Arbeitnehmer, wo Alter < '27';

Abschluss:

In diesem Leitfaden haben wir verschiedene Beispiele für ntile Funktionen erörtert. Sie können sie gemäß Ihrer Notwendigkeit implementieren.