» נושאי לימוד
» נושאי לימוד
יום שישי 19 באפריל 2024
פונקציות GROUP BY
דף ראשי  מילון מונחים  פונקציות ואופרטורים  פונקציות והגבלות לשימוש עם משפטי GROUP BY  פונקציות GROUP BY גרסה להדפסה

אם נשתמש בפונקציות קבוצה בהצהרה שלא מכילה את המשפט GROUP BY, זה שווה-ערך להקבצה על כל השורות.

 

(AVG(expr

מחזיר את ערך הממוצע של expr:

 

 

mysql> SELECT student_name, AVG(test_score)

    ->        FROM student

    ->        GROUP BY student_name;

 

(BIT_AND(expr

מחזיר את ה-BITWISE AND של כל הביטים ב-expr. החישוב מבוצע עם דיוק של 64-bit.

 

(BIT_OR(expr

מחזיר את ה-BITWISE OR של כל הביטים ב-expr. החישוב מבוצע עם דיוק של 64-bit.

 

(BIT_XOR(expr

מחזיר את ה-BITWISE XOR של כל הביטים ב-expr. החישוב מבוצע עם דיוק של 64-bit.

 

(COUNT(expr

מחזיר את מספר ערכי ה-non-NULL בשורות שאוחזר ע"י הצהרת ה-SELECT:

 

 

mysql> SELECT student.student_name,COUNT(*)

    ->        FROM student,course

    ->        WHERE student.student_id=course.student_id

    ->        GROUP BY student_name;

 

(*)COUNT שונה במקצת בכך שהוא סופר את מספר השורות שאוחזר, בין אם מכילים ערכי NULL ובין אם לא. (*)COUNT אופטימלי כדי לחזור במהירות במקרה ש-SELECT מאחזר מטבלה אחת, אין אחזור של עמודות אחרות ואין את המשפט של WHERE.

לדוגמא:

 

 

;mysql> SELECT COUNT(*) FROM student

 

(]...,COUNT(DISTINCT expr, [expr

מחזיר את מספר ערכי ה-non-NULL השונים.

 

 

;mysql> SELECT COUNT(DISTINCT results) FROM student

 

 

(GROUP_CONCAT(expr

:התחביר המלא

 

 

GROUP_CONCAT([DISTINCT] expr [,expr ...]

         [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]

         [SEPARATOR str_val])

 

הפונקציה מחזירה מחרוזת כתוצאה עם שרשור הערכים מהקבוצה:

 

 

mysql> SELECT student_name,

    ->        GROUP_CONCAT(test_score)

    ->        FROM student

    ->        GROUP BY student_name;

 

או:

 

 

mysql> SELECT student_name,

    ->        GROUP_CONCAT(DISTINCT test_score

    ->                     ORDER BY test_score DESC SEPARATOR " ")

    ->        FROM student

    ->        GROUP BY student_name;

 

ב-MYSQL ניתן לקבל שרשור של ערכים של צירוף ביטויים. ניתן לסלק ערכים זהים באמצעות שימוש ב-DISTINCT. אם ברצוננו למיין ערכים בתוצאה אנו צריכים להשתמש במשפט של ORDER BY. בכדי למיין בסדר הפוך, נוסיף את מילת המפתח DESC (בסדר יורד) לשם העמודה שאנו ממינים ע"י המשפט ORDER BY. ברירת המחדל היא סידור בסדר עולה, כאשר ניתן להגדיר זאת המפורש ע"י מילת המפתח ASC. SEPARATOR היא ערך מחרוזת שאמורה להיות מוכנסת בין הערכים בתוצאה. ברירת המחדל היא פסיק (","). ניתן להסיר את המפריד ע"י הגדרת ה-SEPARATOR כ-"". ניתן להגדיר את האורך המקסימלי ע"י המשתנה group_concat_max_len בתצורה שלנו. התחביר כדי לבצע זאת בזמן ריצה הוא:

 

;SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer

 

אם נקבע אורך מקסימלי, התוצאה תקוצץ לאותו אורך מקסימלי. הפונקציה ()GROUP_CONCAT היא יישום משופר של הפונקציה הבסיסית ()LIST .לפונקציה ()GROUP_CONCAT תאימות לאחור עם תפקודיות מוגבלת בצורה קיצונית של ()LIST ,אם רק אחת מהעמודות ואף אחת מהאופציות מוגדרת. ל-()LIST יש סדר מיון שונה בתור ברירת מחדל.

 

(MIN(expr

(MAX(expr

מחזיר את הערך המינימלי או המקסימלי של expr. הפונקציות ()MIN ו-()MAX יכולות לקבל מחרוזת בתור ארגומנט; במקרים אלו הפונקציות מחזירות את ערך המחרוזת המינימלי או המקסימלי.

 

 

mysql> SELECT student_name, MIN(test_score), MAX(test_score)

    ->        FROM student

    ->        GROUP BY student_name;

 

 

(STD(expr

(STDDEV(expr

הפונקציות מחזירות את סטיית התקן של expr.

 

(SUM(expr

הפונקציה מחזירה את הסכום של expr. שים לב, שאם במערך המוחזר אין שורות, היא תחזיר NULL.

 

(VARIANCE(expr

הפונקציה מחזירה את הסכום של expr. שים לב, שאם במערך המוחזר אין שורות, היא תחזיר NULL.

 

 04-04-04 / 15:51  עודכן ,  17-03-04 / 13:58  נוצר ע"י אלי אלוני בתאריך 
 פונקציות והגבלות לשימוש עם משפטי GROUP BY - הקודםהבא - הגבלת GROUP BY 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 4