פונקציית חלון מספר שורות MySQL

Mysql Row Number Window Function



בתוך MySQL, שיטת ROW NUMBER () מכילה מספר כרונולוגי לכל שורה בתוך המחיצה. זוהי רק תכונת חלון כלשהי. דמות השורות מתחילה ב -1 עם דמות השורות בתוך המחיצה. זכור, לפני גירסה 8.0, MySQL אינה מתירה את הפונקציה ROW NUMBER () אולם היא מציעה משתנה הפעלה שעוזר לחקות תכונה זו. נבין יותר אודות פונקציונליות MySQL ROW NUMBER () לאורך המדריך הזה וייצור מספר עוקב לכל שורה באוסף התוצאות. ב- MySQL, שיטות ROW_NUMBER () משמשות עם הסעיפים הבאים:

  • סעיף Over () ישמש בתוכו.
  • סעיף ORDERS BY מסדר את התוצאה לפי סדר המיון של העמודה שהוזכרה.

תחביר:

>> בחר שם שם,ROW_NUMBER()על( חֲלוּקָה לפי שם שם, מיין לפי שם שם) כפי ש שורה_מספר מ שם שולחן;

הבה נפתח את מעטפת לקוח שורת הפקודה MySQL מהיישומים והקלד את הסיסמה כדי להיכנס.









עליך ליצור טבלה חדשה או להשתמש בטבלת ברירת המחדל כדי להתחיל לעבוד על הפונקציה מספר השורות. כפי שמוצג בתמונה למטה, יש לנו חיות טבלה בנתוני הסכימה עם כמה רשומות. בואו נביא את הרשומות שלו באמצעות הוראת SELECT.



>> בחר * מ נתונים .חיות;





דוגמה 01: ROW_NUMBER () באמצעות סעיף ORDER BY

נשתמש באותה טבלה כדי לפרט על כמה דוגמאות של הפונקציה מספר השורות. אנו לוקחים דוגמה לפונקציה ROW_NUMBER () ואחריה Over (), תוך שימוש בסעיף ORDER BY בלבד. אחזרנו את כל הרשומות תוך מספור השורות לפי סדר המחיר של העמודה. נתנו את השם row_num לעמודה, שתאחסן את מספרי השורה. ננסה לעשות את הפקודה שלהלן.

>> בחר *,ROW_NUMBER()על( מיין לפי מחיר) כפי ש שורה_מספר מ נתונים .חיות;

עם ביצוע השאילתה לעיל, אנו יכולים לראות כי לשורות הוקצו מספרים בהתאם לסדר המיון של העמודה מחיר. אתה עשוי לחשוב שכמה מחירים קטנים יותר צריכים להיות בחלק העליון של העמודה וזה צריך למיין בהתאם לזה. אבל סעיף ORDER BY רואה רק את הספרה הראשונה או האלפבית של העמודה למיון ערכים.



בואו נבצע את אותה שאילתה ואחריה פסקת ORDER BY תוך שימוש בסדר המיון של הטור Age. הפלט יינתן בהתאם לגיל הטור.

>> בחר *,ROW_NUMBER()על( מיין לפי גיל) כפי ש שורה_מספר מ נתונים .חיות;

דוגמה 02: ROW_NUMBER () שימוש בסעיף PARTITION BY

אנו נשתמש בסעיף PARTITION BY היחיד בשאילתת ROW_NUMBER () כדי לבדוק את התוצאות. השתמשנו בשאילתת SELECT כדי להביא את הרשומות שאחריהן פסקת ROW_NUMBER () ו- OVER, תוך חלוקת הטבלה בהתאם לעמודה Color. בצע את הפקודה המצורפת למטה במעטפת הפקודה.

>> בחר *,ROW_NUMBER()על( חֲלוּקָה לפי צבע) כפי ש שורה_מספר מ נתונים .חיות;

ניתן לראות בתוצאה שמספור השורות הוקצה במחיצות, בהתאם לסדר מיון הצבעים. מכיוון שיש לנו 4 ערכים לצבע שחור שלוקח 4 שורות. לכן יש לו מספרים של ארבע שורות החל מ -1 עד 4 ולהיפך.

נסה את אותה דוגמה, שהמחלקה לפי העמודה מגדר הפעם. כפי שאנו יודעים, יש לנו רק שני מגדרים בטבלה זו, לכן ייווצרו 2 מחיצות. הנקבות תופסות 9 שורות, לכן יש לה מספור שורות מ -1 עד 9. בעוד שלזכרים יש 8 ערכים, לכן יש לה 1 עד 8.

>> בחר *,ROW_NUMBER()על( חֲלוּקָה לפי מין) כפי ש שורה_מספר מ נתונים .חיות;

דוגמה 03: ROW_NUMBER () שימוש ב- PARTITION BY & ORDER BY

עשינו את שתי הדוגמאות שלעיל בשורת הפקודה MySQL, עכשיו הגיע הזמן לעשות את הדוגמה ROW_NUMBER () ב- MySQL Workbench 8.0. לכן, פתח את MySQL Workbench 8.0 מהיישומים. חבר את שולחן העבודה MySQL עם מסד הנתונים של השורש המארח המקומי כדי להתחיל לעבוד.

בצד שמאל של שולחן העבודה MySQL, תמצא את סרגל הסכימה, תעיף את הנווט. בסרגל סכימה זה תמצא את רשימת מסדי הנתונים. מתחת לרשימת מאגרי המידע, יהיו לך טבלאות ונהלים מאוחסנים שונים, כפי שניתן לראות בתמונה למטה. יש לנו טבלאות שונות במסד הנתונים שלנו 'נתונים'. נפתח את הטבלה 'סדר 1' באמצעות הפקודה SELECT באזור השאילתה כדי להתחיל להשתמש בה ליישום פונקציות ROW_NUMBER ().

>> בחר * מ נתונים . סדר 1;

סדר הטבלה 1 הוצג בתצוגת הרשת כפי שמוצג להלן. אתה יכול לראות שיש לו 4 שדות עמודות, מזהה, אזור, סטטוס ו- OrderNo. אנו נביא את כל הרשומות של טבלה זו תוך שימוש בסעיף ORDER BY ו- PARTITION BY, שניהם בו זמנית.

באזור השאילתה של MySQL Workbench 8.0, הקלד את השאילתה המוצגת למטה. השאילתה התחילה באמצעות סעיף SELECT, ואחזר את כל הרשומות ואחריו הפונקציה ROW_NUMBER () יחד עם סעיף OVER. לאחר פסקת ה- OVER, צייננו את העמודה סטטוס שהמשכו בהצהרת PARTITION BY לחלק את הטבלה למחיצות בהתאם לטבלה זו. סעיף ORDER BY שימש לסידור הטבלה באופן יורד בהתאם לאזור העמודה. מספרי השורות יישמרו בעמודה row_num. הקש על סמל הפלאש כדי לבצע פקודה זו.

התוצאה המוצגת למטה תוצג. קודם כל, הטבלה הופצלה לשני חלקים בהתאם לערכי סטטוס העמודה. לאחר מכן הוא הוצג בסדר יורד של העמודה 'אזור' ולמחיצות הוקצו מספרי השורות.

סיכום:

לבסוף, השלמנו את כל הדוגמאות הדרושות לשימוש בפונקציה ROW_NUMBER () ב- MySQL Workbench וב- Shell מעטפת שורת הפקודה MySQL.