Partition, functie
Van toepassing op
Deze functie retourneert een variant (tekenreeks) die aangeeft waar een getal voorkomt in een berekende reeks bereiken.
Syntaxis
Partitie(getal, begin, stop, interval)
De syntaxis van de functie Partition bevat deze argumenten:
| Argument | Beschrijving |
|---|---|
| Nummer | Vereist. Een geheel getal dat u wilt evalueren op basis van de bereiken. |
| begin | Vereist. Een geheel getal dat het begin aangeeft van het algehele bereik van getallen. Het getal mag niet kleiner zijn dan 0. |
| einde | Vereist. Een geheel getal dat het einde aangeeft van het algehele bereik van getallen. Het getal mag niet gelijk zijn aan of kleiner zijn dan begin. |
| interval | Vereist. Geheel getal dat de grootte van de partities binnen het totale bereik van getallen (tussen start en stop) aangeeft. |
Opmerkingen
De functie Partition identificeert het specifieke bereik waarin getal valt en retourneert een variant (tekenreeks) die dat bereik beschrijft. De functie Partition is vooral handig in query's. U kunt een selectiequery maken die laat zien hoeveel orders er in verschillende bereiken vallen, bijvoorbeeld orders met aantallen van 1 tot 1000, 1001 tot 2000, enzovoort.
In de volgende tabel ziet u hoe de bereiken worden bepaald met behulp van drie sets begin-, stop- en intervalargumenten. De kolommen Eerste bereik en Laatste bereik bevatten de waarde die Partition als resultaat geeft. De bereiken worden vertegenwoordigd door lowervalue:uppervalue, waarbij het lage uiteinde (onderwaarde) van het bereik wordt gescheiden van het hoge uiteinde (bovenwaarde) van het bereik met een dubbele punt (:).
| begin | Stoppen | interval | Voor eerste | Eerste bereik | Laatste bereik | Na laatste |
|---|---|---|---|---|---|---|
| 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 de bovenstaande tabel geeft de derde regel het resultaat weer wanneer starten en stoppen een set getallen definieert die niet gelijkmatig kunnen worden gedeeld op interval. Het laatste bereik wordt uitgebreid tot stoppen (11 getallen), ook al is het interval 20.
Indien nodig retourneert Partition een bereik met voldoende voorloopspaties, zodat er links en rechts van de dubbele punt hetzelfde aantal tekens zijn als er tekens in stop zijn, plus één. Op deze manier weet u zeker dat bij het gebruik van Partition met andere getallen, de resulterende tekst correct wordt verwerkt tijdens een volgende sorteerbewerking.
Als interval 1 is, is het bereik getal:getal, ongeacht de begin- en eindargumenten. Als interval bijvoorbeeld 1 is, getal 100 en stop 1000, retourneert Partitie 100: 100.
Als een van de onderdelen Null is, retourneert Partition een Null.
Queryvoorbeelden
| Expression | Resultaten |
|---|---|
| SELECT Partition(eenheidsprijs;40.240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productVerkoop GROEP BY Partitie(eenheidsprijs,40.240,20); | Hiermee maakt u een reeks bereiken voor de waarden in het veld 'prijs per eenheid' van 'begin'(40) tot 'stop'(240) met een gelijke grootte van 'interval'(20) en wordt het aantal 'eenheidsprijs' in respectieve bereiken berekend. Geeft de bereiken weer in kolom PriceRange en count in kolom 'Count'. |
VBA-voorbeeld
In dit voorbeeld wordt ervan uitgegaan dat u een tabel Orders hebt die een veld Vracht bevat. Er wordt een selectieprocedure gemaakt waarmee het aantal orders wordt geteld waarvoor de vrachtkosten in elk van verschillende bereiken vallen. De functie Partition wordt eerst gebruikt om deze bereiken tot stand te brengen. Vervolgens telt de functie SQL Count het aantal orders in elk bereik. In dit voorbeeld zijn de argumenten voor de partitiefunctie start = 0, stop = 500, interval = 50. Het eerste bereik is dus 0:49, enzovoort tot 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);