Deze functie retourneert een variant (tekenreeks) die aangeeft waar een getal voorkomt in een berekende reeks bereiken.
Syntaxis
Partition( getal, begin, einde, interval)
De syntaxis van de functie Partition bevat deze argumenten:
Argument |
Beschrijving |
getal |
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. Een geheel getal dat de grootte van de partities aangeeft binnen het algehele bereik van getallen (tussen begin en einde). |
Opmerkingen
De functie Partition geeft het bereik aan waarin getal valt en retourneert een variant (tekenreeks) met een beschrijving van dat bereik. 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 argumenten begin, einde en interval. De kolommen Eerste bereik en Laatste bereik bevatten de waarde die Partition als resultaat geeft. De bereiken worden aangegeven met laagstewaarde:hoogstewaarde, waarbij het lage segment (laagstewaarde) met een dubbele punt (:) wordt gescheiden van het hoge segment (hoogstewaarde).
begin |
einde |
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 tabel hierboven bevat de derde regel het resultaat wanneer begin en einde een reeks getallen aangeven die niet evenredig kunnen worden gedeeld door interval. Het laatste bereik wordt uitgebreid naar einde (11 getallen) hoewel interval is ingesteld 20.
Indien nodig retourneert Partition een bereik met voldoende voorloopspaties, zodat er links en rechts van de dubbele punt evenveel tekens staan als in begin, 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, bestaat het bereik uit getal: getal, ongeacht de argumenten begin en einde. Als interval bijvoorbeeld 1 is, getal 100 en einde 1000, retourneert Partition '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);