שאילתות משנה חלק 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 אונליין