שאילתות משנה חלק 2
חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 39 מתוך 72.
ישנם שלושה סוגים עיקריים של שאילתות משנה:
- שאילתות משנה סקלריות - מחזירות ערך יחיד (שורה אחת, עמודה אחת)
- שאילתות משנה של שורה - מחזירות שורה אחת עם כמה עמודות
- שאילתות משנה של טבלה - מחזירות כמה שורות ועמודות
לדוגמה, הנה כמה מקרי שימוש לכל סוג של שאילתת משנה:
שאילתת משנה סקלרית - מציאת עובדים שמשתכרים יותר מהשכר הממוצע:
SELECT name, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);שאילתת משנה של שורה — מציאת עובד(ים) באותה מחלקה ובאותו שכר כמו Alice
SELECT name
FROM employees
WHERE (department, salary) = (
SELECT department, salary
FROM employees
WHERE name = 'Alice'
);שאילתות משנה בטבלה – הצגת המחלקות ומספר העובדים בכל אחת מהן
SELECT department, count
FROM (
SELECT department, COUNT(*) as count
FROM employees
GROUP BY department
) as dept_counts;שימו לב למקרי השימוש:
- סקלרי - השוואות פשוטות (>, <, =)
- כשצריך להתאים כמה עמודות
- כשצריך לבצע שאילתה מתוך קבוצת תוצאות
אתגר
קלטבלאות ועמודות זמינות:
shop:price,quantity,category,list_date
מצא קטגוריות שבהן הכמות הכוללת שלהן גדולה מהממוצע של כל הכמויות בחנות. החזר את category ואת סכום הכמויות בשם total_quantity.
חשוב: עליך להשתמש בשאילתת משנה בתוך סעיף HAVING כדי לחשב את הממוצע. אין להשתמש בערך קשיח או בשאילתה נפרדת: שאילתת המשנה צריכה לחשב את AVG(quantity) ישירות מטבלת shop בתוך HAVING.
שלבים לפתרון:
- ראשית, כתוב שאילתת משנה שמחשבת את הממוצע של כל הכמויות בחנות:
SELECT AVG(quantity) FROM shop - לאחר מכן, עבור כל קטגוריה, חשב את סכום הכמויות שלה והשווה אותו לממוצע שמתקבל משאילתת המשנה באמצעות מילת המפתח
HAVING
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
2תנאים
יסודות התנאיםמילת המפתח ANDמילת המפתח ORמילת המפתח NOTשילוב של תנאים מרוביםסוגרייםערכים בוליאניים3פורמט החזרה ספציפי
ערכי Nullמיון תוצאות – חלק 1מיון תוצאות – חלק 2סיכום – חברת אבטחת סייברהגבלת מספר הרשומותסיכום – מפעל כלי רכב6אתגרי מבוא
חזרה – בחירות לפרלמנטחזרה – מעצר חשוד בידי המשטרהחזרה – כלי משקה בברחזרה – מהנדסים עמודות חדשותתרגלו בעצמכם: SQL אונליין