Pateikia variantą (eilutę), nurodantį, kurioje apskaičiuotųjų diapazonų sekoje yra skaičius.
Sintaksė
Partition(skaičius, pradžia, sustabdymas, intervalas)
Funkcijos Partition sintaksėje yra toliau nurodyti argumentai.
| Argumentas | Aprašymas |
|---|---|
| skaičius | Būtinas. Sveikasis skaičius, kurį norite įvertinti pagal diapazonus. |
| pradėti | Būtinas. Sveikasis skaičius, kuris yra viso skaičių diapazono pradžia. Skaičius negali būti mažesnis už 0. |
| sustoti, sustok | Būtinas. Sveikasis skaičius, kuris yra viso skaičių diapazono pabaiga. Skaičius negali būti lygus arba mažesnis už pradžios reikšmę. |
| intervalas | Būtinas. Sveikasis skaičius, nurodantis skaidinių dydį bendrame skaičių diapazone (tarp pradžios ir pabaigos). |
Pastabos
Funkcija Partition identifikuoja konkretų diapazoną, kuriame patenka skaičius, ir pateikia variantą (eilutę), apibūdinančią tą diapazoną. Funkcija Partition yra naudingiausia užklausose. Galima sukurti išrinkimo užklausą, kuri parodo, kiek užsakymų patenka į įvairius diapazonus, pavyzdžiui, užsakymų reikšmes nuo 1 iki 1000, nuo 1001 iki 2000 ir t. t.
Toliau pateiktoje lentelėje parodyta, kaip diapazonai nustatomi naudojant tris pradėjimo, sustabdymo ir intervalo argumentų rinkinius. Stulpeliuose Pirmasis diapazonas ir Paskutinis diapazonas rodoma, ką grąžina skaidinys . Diapazonai pateikiami kaip lowervalue:uppervalue, kur žemiausia diapazono dalis (apatinėreikšmė) dvitaškiu (:) atskiriama nuo aukščiausios diapazono klasės (viršutinėreikšmė).
| pradėti | sustoti, sustok | intervalas | Prieš pirmą | Pirmasis diapazonas | Paskutinis diapazonas | Po paskutinio |
|---|---|---|---|---|---|---|
| 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: " |
Aukščiau pateiktos lentelės trečioje eilutėje rodomas rezultatas, kai pradžia ir pabaiga apibrėžia skaičių rinkinį, kurio negalima tolygiai padalyti intervalu. Paskutinis diapazonas tęsiasi iki žingsnio (11 skaičių), nors intervalas yra 20.
Jei reikia, skaidinys pateikia diapazoną su pakankamai tarpų pradžioje, kad tiek pat simbolių į kairę ir dešinę nuo dvitaškio būtų tiek pat, kiek simbolių yra sustabdyme, plius vienas. Tai užtikrina, kad jei naudojate skaidinį su kitais skaičiais, gautas tekstas bus tinkamai apdorojamas atliekant bet kokią paskesnę rūšiavimo operaciją.
Jei intervalas yra 1, diapazonas yra skaičius:skaičius, neatsižvelgiant į pradžios ir pabaigos argumentus. Pavyzdžiui, jei intervalas yra 1, skaičius yra 100 ir stop yra 1000, Partition grąžina " 100: 100 ".
Jei kuri nors dalis yra Null, Partition grąžina Null.
Užklausų pavyzdžiai
| Išraiška | Rezultatai |
|---|---|
| SELECT Partition(vieneto kaina, 40, 240, 20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(vieneto kaina, 40, 240, 20); | Sukuria lauko "vieneto_kaina" reikšmių diapazonų rinkinį nuo "pradžios"(40) iki "stop"(240) su lygiu "intervalo"(20) dydžiu ir apskaičiuoja "vieneto_kainos" skaičių atitinkamuose diapazonuose. Rodo diapazonus stulpelyje PriceRange ir count stulpelyje "Count". |
VBA pavyzdys
Šiame pavyzdyje daroma prielaida, kad turite lentelę Užsakymai, kurioje yra laukas Krovinys. Ji sukuria išrinkimo procedūrą, kuri skaičiuoja užsakymų, kurių transportavimo išlaidos patenka į kiekvieną iš kelių diapazonų, skaičių. Pirmiausia šiems diapazonams nustatyti naudojama funkcija Partition , tada SQL funkcija Count skaičiuoja kiekvieno diapazono užsakymų skaičių. Šiame pavyzdyje funkcijos Partition argumentai yra start = 0, stop = 500, interval = 50. Todėl pirmasis diapazonas būtų 0:49 ir taip toliau iki 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);