SQLite NTILE

Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie mit der Funktion SQLite NTILE() eine Ergebnismenge in eine Reihe von Buckets aufteilen und jeder Zeile eine Bucket-Nummer zuweisen.

Einführung in die Funktion SQLite NTILE()

Die Funktion SQLite NTILE() ist eine Fensterfunktion, die eine geordnete Ergebnismenge durch einen angegebenen Ausdruck in eine Anzahl von Buckets unterteilt und jeder Zeile eine entsprechende Bucket-Nummer zuweist.

Im Folgenden wird die Syntax der Funktion NTILE() gezeigt:

In dieser Syntax:

Ausdruck

Der expression kann eine wörtliche positive ganze Zahl oder ein beliebiger gültiger Ausdruck sein, der in eine positive ganze Zahl aufgelöst wird.

Die Funktion NTILE() weist jeder Zeile Zahlen von 1 bis zum Wert von expression zu. Die Anzahl der Zeilen in Buckets kann um höchstens 1 abweichen. Der Rest der durch Buckets geteilten Anzahl von Zeilen wird jedem Bucket zugewiesen, beginnend mit Bucket 1.

Wenn Sie beispielsweise 10 Zeilen und 4 Buckets haben. Jeder Eimer hat 2 Reihen. Der Rest von 10/4 ist 2. Der erste Bucket hat also 2 + 1 = 3 Zeilen, der zweite Bucket hat ebenfalls 3 Zeilen.

Das folgende Bild veranschaulicht die Idee:

Wenn der Wert des Ausdrucks größer als die Anzahl der Zeilen ist, füllt die Funktion NTILE() die Anzahl der Buckets, die der Anzahl der Zeilen entspricht. Daher sind die verbleibenden Eimer leer.

Wenn Sie beispielsweise 10 Zeilen und 11 Buckets haben, wird jeder Zeile eine Bucket-Nummer von 1 bis 10 zugewiesen. Der 11. Eimer wird keine Reihe haben.

Beachten Sie, dass Sie in expression keine Unterabfrage oder Fensterfunktion verwenden können.

PARTITION BY

Die Klausel PARTITION BY unterteilt die Ergebnismengen in Partitionen, auf die die Funktion NTILE angewendet wird.

ORDER BY

Die ORDER BY-Klausel gibt die Reihenfolge der Zeilen in jeder Partition an, für die NTILE() gilt.

SQLite NTILE() Funktionsbeispiel

Wir werden die Tracks-Tabelle aus der Beispieldatenbank verwenden, um die NTILE() Funktion zu demonstrieren:

Verwenden der SQLite-Funktion NTILE() mit ORDER BY example

Die folgende Anweisung verwendet die Funktion NTILE(), um die Werte in der Spalte Milliseconds der Tabelle tracks aus dem Album 1 in 4 Buckets zu unterteilen.

Die Spalte Milliseconds enthält 10 Werte in diesem Album, sodass die beiden zusätzlichen Werte, die der Rest von 10/4 sind, auf die Buckets 1 und 2 verteilt werden, die daher mehr Wert haben als die Buckets 3 oder 4.

Hier ist die Ausgabe:

Verwenden der SQLite-Funktion NTILE() mit PARTITION BY-Klausel Beispiel

Die folgende Anweisung verwendet die Funktion NTILE(), um die Titel jedes Albums nach den Werten in der Spalte Bytes in 3 Buckets aufzuteilen:

Das folgende Bild zeigt die Ausgabe:

In diesem Beispiel verteilte die Klausel PARTITION BY die Zeilen in Partitionen oder Alben. Die ORDER BY -Klausel sortierte die Titel in jedem Album nach ihrer Größe in Bytes. Die Funktion NTILE() hat jedem Titel eine Bucket-Nummer zugewiesen und die Bucket-Nummer für jedes Album zurückgesetzt.

In diesem Lernprogramm haben Sie gelernt, wie Sie mit der SQLite-Funktion NTILE() eine Ergebnismenge in mehrere Buckets aufteilen und jeder Zeile eine Bucket-Nummer zuweisen.

  • War dieses Tutorial hilfreich ?
  • JaNein

You might also like

Schreibe einen Kommentar

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