הפונקציה MySQL count() משמשת להחזרת הספירה של ביטוי. זה מאפשר לנו לספור את כל השורות או רק כמה שורות בטבלה התואמות לתנאי שצוין. זהו סוג של פונקציה מצטברת שסוג ההחזר שלה הוא BIGINT. פונקציה זו מחזירה 0 אם היא לא מוצאת שורות תואמות.
אנו יכולים להשתמש בפונקציית הספירה בשלוש צורות, אשר מוסברות להלן:
- לספור (*)
- ספירה (ביטוי)
- ספירה (מובחן)
הבה נדון בכל אחד בפירוט.
COUNT(*) פונקציה: פונקציה זו משתמשת במשפט SELECT כדי להחזיר את ספירת השורות בערכת תוצאות. ערכת התוצאות מכילה את כל השורות Non-Null, Null והכפילויות.
COUNT(ביטוי) פונקציה: פונקציה זו מחזירה את ערכת התוצאות מבלי להכיל שורות Null כתוצאה של ביטוי.
COUNT(ביטוי מובחן) פונקציה: פונקציה זו מחזירה את ספירת השורות הנבדלות מבלי להכיל ערכי NULL כתוצאה מהביטוי.
תחביר
להלן התחביר של הפונקציה COUNT():
SELECT COUNT (aggregate_expression) FROM table_name [WHERE conditions];
הסבר פרמטר
מצטבר_ביטוי: הוא מציין את העמודה או הביטוי שערכי ה-NON-NULL שלהם ייספרו.
מחרוזת לזה
שם שולחן: זה מציין את הטבלאות מהן ברצונך לאחזר רשומות. חייבת להיות לפחות טבלה אחת בסעיף FROM.
תנאים WHERE: זה אופציונלי. הוא מפרט את התנאים שיש למלא כדי שהרשומות ייבחרו.
דוגמה לפונקציה MySQL count()
שקול טבלה בשם 'עובדים' המכילה את הנתונים הבאים.
תן לנו להבין כיצד פועלות פונקציות count() ב MySQL .
דוגמה1
בצע את השאילתה הבאה המשתמשת בפונקציה COUNT(ביטוי) כדי לחשב את המספר הכולל של שמות העובדים הזמינים בטבלה:
גובינדה
mysql> SELECT COUNT(emp_name) FROM employees;
תְפוּקָה:
דוגמה2
בצע את המשפט הבא שמחזיר את כל השורות מטבלת העובדים וסעיף WHERE מציין את השורות שהערך שלהן בעמודה emp_age גדול מ-32:
mysql> SELECT COUNT(*) FROM employees WHERE emp_age>32;
תְפוּקָה:
דוגמה3
הצהרה זו משתמשת בפונקציה COUNT(ביטוי מובחן) הסופרת את השורות הלא-ריקות והשורות הנפרדות בעמודה emp_age:
mysql> SELECT COUNT(DISTINCT emp_age) FROM employees;
תְפוּקָה:
פונקציית MySQL Count() עם סעיף GROUP BY
נוכל גם להשתמש בפונקציה count() עם פסקת GROUP BY שמחזירה את ספירת האלמנט בכל קבוצה. לדוגמה, ההצהרה הבאה מחזירה את מספר העובדים בכל עיר:
mysql> SELECT emp_name, city, COUNT(*) FROM employees GROUP BY city;
לאחר הביצוע המוצלח, נקבל את התוצאה כדלקמן:
פונקציית MySQL Count() עם סעיף HAVING ו-ORDER BY
הבה נראה משפט נוסף שמשתמש במשפט ORDER BY ו-Having עם הפונקציה count() . בצע את ההצהרה הבאה הנותנת לעובד את שם העובד שיש לו לפחות שני גיל זהים וממיין אותם על סמך תוצאת הספירה:
mysql> SELECT emp_name, emp_age, COUNT(*) FROM employees GROUP BY emp_age HAVING COUNT(*)>=2 ORDER BY COUNT(*);
הצהרה זו תיתן את הפלט כדלקמן: