Returnerar en Variant (sträng) som anger var i en beräknad intervallserie ett tal förekommer.
Syntax
Partition(tal, start, stopp, intervall)
Partition-funktionens syntax har följande argument:
| Argument | Beskrivning |
|---|---|
| Nummer | Obligatoriskt. Heltal som du vill beräkna mot intervallerna. |
| start | Obligatoriskt. Heltal som finns i början av den övergripande taluppsättningen. Talet kan inte vara mindre än 0. |
| stopp | Obligatoriskt. Heltal som finns i slutet av den övergripande taluppsättningen. Talet kan inte vara lika med eller mindre än start. |
| intervall | Obligatoriskt. Heltal som anger storleken på partitionerna inom det övergripande intervallet med tal (mellan start och stopp). |
Kommentarer
Partition-funktionen identifierar det område där talet faller och returnerar en variant (sträng) som beskriver området. Partition-funktionen är mest användbar i frågor. Du kan skapa en urvalsfråga som visar hur många order som faller inom olika intervall, till exempel ordervärden från 1 till 1 000, 1 001 till 2 000 och så vidare.
I följande tabell visas hur intervallen bestäms med tre uppsättningar start-, stopp- och intervallargument . Kolumnerna för första och sista intervall visar vad Partition returnerar. Områdena representeras av lowervalue:uppervalue, där intervallets nedre del (nedre värde) avgränsas från intervallets övre ände (övre värde) med ett kolon (:).
| Börja | Stanna | intervall | Före första | Första intervall | Sista intervall | Efter sista |
|---|---|---|---|---|---|---|
| 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: " |
I tabellen ovan visar den tredje raden resultatet när start och stopp definierar en uppsättning tal som inte kan delas jämnt med intervall. Det sista intervallet utökas till stopp (11 tal) även om intervallet är 20.
Om det behövs returnerar Partition ett område med tillräckligt med inledande blanksteg så att det finns samma antal tecken till vänster och höger om kolonet som det finns tecken i stopp plus ett. Detta säkerställer att om du använder Partition med andra tal kommer den resulterande texten att hanteras korrekt vid efterföljande sortering.
Om intervall är 1 är intervallet tal:tal, oavsett start - och stoppargumenten . Om till exempel intervallet är 1, talet är 100 och stopp är 1 000 returnerar Partition " 100: 100".
Om någon av delarna är Null returnerar Partition en Null.
Frågeexempel
| Uttryck | Resultat |
|---|---|
| SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); | Skapar en uppsättning intervall för värdena i fältet "enhetspris" från "start"(40) till "stopp"(240) med samma "intervall"(20) storlek och beräknar antalet "enhetspris" i respektive intervall. Visar intervallen i kolumnen Prisordning och antal i kolumnen Antal. |
VBA-exempel
Det här exemplet förutsätter att du har en ordertabell som innehåller ett fält för Frakt. Den skapar en valbar procedur som räknar antalet order där fraktkostnaderna tillhör något av flera intervaller. Partition-funktionen används först för att bestämma intervallen och sedan räknar SQL Count-funktionen antalet order för varje intervall. I det här exemplet är argumenten för Partition-funktionen start = 0, stopp = 500, intervall = 50. Det första intervallet är därför 0:49, och så vidare upp till 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);