החזרת משתנה (מחרוזת) המציין היכן מופיע מספר בתוך סידרה מחושבת של טווחים.
תחביר
Partition( number, start, stop, interval)
תחביר הפונקציה Partition מכיל את הארגומנטים הבאים:
ארגומנט |
תיאור |
number |
נדרש. המספר השלם שברצונך להעריך מול הטווחים. |
התחלה |
נדרש. המספר השלם שהוא ההתחלה של טווח המספרים הכולל. המספר אינו יכול להיות קטן מ- 0. |
הפסקה |
נדרש. המספר השלם שהוא הסוף של טווח המספרים הכולל. המספר אינו יכול להיות שווה להתחלה או קטן מהערך שלה. |
interval |
נדרש. מספר שלם המציין את גודל המחיצות בטווח המספרים הכולל (בין התחלהלחלקהעליון). |
הערות
הפונקציה Partition מזהה את הטווח המסוים שבו מספר נופל ומחזירה משתנה (מחרוזת) המתאר טווח זה. הפונקציה Partition שימושית ביותר בשאילתות. באפשרותך ליצור שאילתת בחירה המציגה את כמות ההזמנות הנמצאות בטווחים שונים, לדוגמה, ערכי הזמנה בין 1 ל- 1000, 1001 עד 2000 וכן הלאה.
הטבלה הבאה מראה כיצד הטווחים נקבעים באמצעות שלוש קבוצות של ארגומנטים של התחלה,עצירה ומרווחי זמן. העמודות טווח ראשון וטווח אחרון מציגות את מה שמחזירה מחיצה . הטווחים מיוצגים על-ידי lowervalue:uppervalue, כאשר הקצה הנמוך (ערך תחתון) של הטווח מופרד מהקצה העליון (ערך עליון) של הטווח עם נקודתיים (:).
התחלה |
הפסקה |
interval |
לפני הראשון |
טווח ראשון |
טווח אחרון |
אחרי אחרון |
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: " |
בטבלה המוצגת לעיל, השורה השלישית מציגה את התוצאה בעת ההתחלה והפסקה של הגדרת ערכה של מספרים שלא ניתן לחלק באופן שווה במרווח זמן. הטווח האחרון מתרחב עד לפסקה (11 מספרים) למרות שרווח הזמן הוא 20.
במידת הצורך, Partition מחזיר טווח עם מספיק רווחים מובילים כך שישנם אותו מספר תווים משמאל ומימין של הנקודתיים כפי שיש תווים ב- stop, בתוספת אחד. פעולה זו מבטיחה שאם אתה משתמש במחיצה עם מספרים אחרים, הטקסט המתוצא ימופעל כראוי במהלך כל פעולת מיון בהמשך.
אם interval הוא 1, הטווח הוא number:number, ללא קשר לארגומנטי ההתחלהוההפסקה . לדוגמה, אם מרווח הזמן הוא 1, number הוא 100 ו- stop הוא 1000, Partition מחזירה " 100: 100".
אם אחד מהרכיבים הוא Null, Partition מחזירה ערך Null.
דוגמאות שאילתה
Expression |
תוצאות |
SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); |
יצירת קבוצת טווחים עבור הערכים בשדה "unitprice" מ- "start"(40) ל- "stop"(240) בגודל שווה של "interval"(20) ומחשבת את הספירה של "unitprice" בטווחים המתאימים. הצגת הטווחים בעמודה PriceRange וספירה בעמודה 'ספירה'. |
דוגמה ל- VBA
דוגמה זו מניחה שיש לך טבלת Orders המכילה שדה Freight. היא יוצרת פרוצדורת בחירה ש סופרת את מספר ההזמנות שעבורן עלות ההובלה נופלת לכל אחד ממספר טווחים. הפונקציה Partition משמשת תחילה ליצירת טווחים אלה, ולאחר מכן הפונקציה SQL Count סופרת את מספר ההזמנות בכל טווח. בדוגמה זו, הארגומנטים של פונקציית המחיצהמתחילים = 0 , עצור = 500, interval = 50. לפיכך, הטווח הראשון יהיה 0:49 וכן הלאה עד 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count FROM Orders GROUP BY Partition([freight],0,500,50);