Partition-Funktion (Bereich)

Gilt für
Access für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Gibt einen Wert vom Typ Variant (String) zurück, der angibt, wo eine Zahl innerhalb einer berechneten Folge von Bereichen auftritt.

Syntax

partition(number, start, stop, interval)

Die Syntax der Funktion Partition weist die folgenden Argumente auf:

Argument Beschreibung
Zahl Erforderlich. Ganze Zahl, für die Sie den zugehörigen Bereich ermitteln möchten.
Startwert Erforderlich. Eine ganze Zahl, die den Anfang des Zahlenbereichs insgesamt bildet. Die Zahl darf nicht kleiner als 0 sein.
Endwert Erforderlich. Ganze Zahl, die das Ende des Zahlenbereichs insgesamt bildet. Die Zahl darf nicht gleich oder kleiner als Start sein.
Intervall Erforderlich. Ganze Zahl, die die Größe der Partitionen innerhalb des Gesamtbereichs von Zahlen angibt (zwischen Start und Ende).

Hinweise

Die Partition-Funktion identifiziert den bestimmten Bereich, in den die Zahl fällt, und gibt eine Variante (Zeichenfolge) zurück, die diesen Bereich beschreibt. Die Partition-Funktion eignet sich am besten für Abfragen. Sie können eine Auswahlabfrage erstellen, die zeigt, wie viele Bestellungen in verschiedenen Bereichen enthalten sind, z. B. Bestellwerte von 1 bis 1000, 1001 bis 2000 und so weiter.

Die folgende Tabelle zeigt, wie die Bereiche mithilfe von drei Sätzen von Start-, Stopp- und Intervallargumenten bestimmt werden. Die Spalten "Erster Bereich" und "Letzter Bereich" zeigen, was Partition zurückgibt. Die Bereiche werden durch lowervalue:uppervalue dargestellt, wobei das untere Ende (unterer Wert) des Bereichs vom oberen Ende (oberer Wert) des Bereichs durch einen Doppelpunkt (:) getrennt ist.

Beginn Stopp Intervall Vor dem Ersten Erster Bereich Letzter Bereich Nach dem Letzten
0 99 5 " :-1" " 0: 4 " 95: 99" " 100: "
20 199 10 " : 19 " 20: 29" " 190: 199" " 200: "
100 1010 20 " : 99" " 100: 119" " 1000: 1010" " 1011: "

In der oben gezeigten Tabelle zeigt die dritte Zeile das Ergebnis, wenn Start und Stopp eine Reihe von Zahlen definieren, die nicht gleichmäßig durch Intervalle geteilt werden können. Der letzte Bereich erstreckt sich bis stop (11 Zahlen), obwohl das Intervall 20 ist.

Falls erforderlich, gibt Partition einen Bereich mit genügend führenden Leerzeichen zurück, sodass links und rechts vom Doppelpunkt dieselbe Anzahl von Zeichen wie Zeichen in Stop plus eins vorhanden sind. Dadurch wird sichergestellt, dass bei Verwendung von Partition mit anderen Zahlen der sich daraus ergebende Text bei nachfolgenden Sortiervorgängen ordnungsgemäß behandelt werden.

Wenn "Intervall " 1 ist, ist der Bereich "Zahl:Zahl", unabhängig von den Start - und Beendigungsargumenten . Wenn "Intervall " beispielsweise "1", "Zahl " gleich 100 und "Stopp " 1000 ist, gibt "Partition " 100: 100" zurück.

Wenn ein Teil ist Null, gibt Partition eine Null zurück.

Abfragebeispiele

Ausdruck Ergebnisse
SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); Erstellt eine Reihe von Bereichen für die Werte im Feld "Einzelpreis" von "Start"(40) bis "Stopp"(240) mit gleicher "Intervall"(20)-Größe und berechnet die Anzahl der "Einzelpreise" in den jeweiligen Bereichen. Zeigt die Bereiche in Spalte "PriceRange" und die Anzahl in der Spalte "Anzahl" an.

VBA-Beispiel

In diesem Beispiel wird davon ausgegangen, dass Sie über die Tabelle Bestellungen verfügen, die das Feld "Fracht" enthält. Es erstellt ein Auswahlverfahren, das die Anzahl der Bestellungen zählt, für die die Frachtkosten in jeden von mehreren Bereichen fallen. Die Funktion Partition wird zuerst verwendet, um diese Bereiche festzulegen, dann zählt die SQL-Funktion Count die Anzahl der Bestellungen in jedem Bereich. In diesem Beispiel sind die Argumente für die Partitionsfunktionstart = 0, stop = 500, interval = 50. Der erste Bereich wäre daher 0:49 und so weiter bis zu 500.

SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);