כיצד להשתמש בסעיף MySQL HAVING שבו הסכום גדול מהסף

Kyzd Lhstms Bs Yp Mysql Having Sbw Hskwm Gdwl Mhsp



בעבודה עם מסד נתונים של MySQL, לרוב יהיו לך מקרים שבהם תרצה לסנן את הערכים. למרות שאתה יכול להשתמש בסעיף WHERE, זה לא תמיד עובד עבור כל המקרים. הסעיף HAVING משמש כאשר ברצונך לבצע שאילתת סינון באמצעות פונקציית צבירה ולהחיל את הקיבוץ.

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







כיצד להשתמש בסעיף MySQL HAVING שבו הסכום גדול מהסף

אתה מיישם את הסעיף של MySQL HAVING עם הסעיף GROUP BY. התחביר שלו הוא כדלקמן:



בחר expression1, .. expression_n, aggregate_func (ביטוי) FROM table_name GROUP BY expression HAVING ;

אתה יכול להשתמש בפונקציות הצבירה השונות כולל SUM(), COUNT(), MIN(), MAX() ו-AVG(). שים לב שכל ביטוי שאינו בשימוש עם הפונקציה המצטברת חייב להיות מוזכר עם משפט GROUP BY.



לגבי התנאי, הוא מוחל על התוצאות המצטברות שבהן אתה מציין את הסף שברצונך לבדוק עם התנאי. לדוגמה, אתה יכול להחיל את הפונקציה SUM() ולוודא אם הביטוי עומד בסף של 10. נבין יותר עליו בדוגמאות המסופקות.





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



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

על ידי בדיקת התיאור של הטבלה שלנו, נוכל לאשר שכל העמודות נוצרו בהצלחה.

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

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

אם סף השעות הכולל שלנו הוא 7, אנו מבצעים את הפקודה שלנו באופן הבא:

בחר שם, SUM(שעות) AS total_hours_per_person FROM workers GROUP BY name HAVING sum(hours) > 7;

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

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

הפקודה שלנו היא כדלקמן:

בחר מחלקה, SUM(שעות) AS total_hours_per_department FROM workers GROUP BY מחלקה שיש להם סכום(שעות) > 7;

מהתוצאות נוכל לוודא שהצלחנו לסנן את השורות כך שרק לאלה יש סכום שעות גבוה מהסף שלנו.

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

הפקודה היא כדלקמן:

בחר תאריך עבודה, SUM(hours) AS most_hours_worked FROM workers GROUP BYdate work HAVING sum(hours) > 10;

לאחר ביצוע הפקודה, התוצאות מראות שרק לתאריך עבודה אחד יש את סך השעות שלו שחורג מהסף:

סיכום

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