קיבוץ חלק 2
חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 37 מתוך 72.
מילת המפתח WHERE מפעילה תנאי על כל רשומה בנפרד. לדוגמה:
SELECT * FROM table1
WHERE col1 > col2הביטוי col1 > col2 יופעל על כל רשומה ויבדוק אם התנאי מתקיים.
אבל מה אם נרצה לסנן תוצאות מצטברות? לדוגמה:
SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY categoryהפעולה הזו לא תעבוד כי WHERE לא יכול לבדוק צבירות. לשם כך יש לנו את מילת המפתח HAVING. היא מסננת נתונים לפי תנאי הצבירה.
SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40פעולה זו תסנן את כל הקטגוריות שבהן המחיר הממוצע גדול מ-40.
אם נרצה לשלב את פסוקיות HAVING ו־WHERE, נכתוב:
SELECT category, AVG(price) FROM table1
WHERE price > 25
GROUP BY category
HAVING AVG(price) > 40תחילה תעבור רשומה אחר רשומה ותסנן את כל הרשומות שבהן המחיר גדול מ־25, ורק לאחר מכן תריץ את סעיף GROUP BY ותסנן כל קטגוריה שבה המחיר הממוצע גדול מ־40.
אתגר
בינוניטבלאות ועמודות זמינות:
earthquakes:location,amplitude,period
סולם ריכטר הוא סולם לוגריתמי המשמש למדידת עוצמתן של רעידות אדמה.
עלינו להחזיר את עוצמת רעידות האדמה הממוצעת עבור כל מיקום, עבור כל רעידות האדמה הגדולות.
רעידת אדמה גדולה מוגדרת כך:
- המשרעת גדולה מ-1 או שווה לו
- המחזור של הגלים הוא דקה אחת או יותר
באתגר הזה נשתמש בנוסחה אחרת: M = (A/T)^2 / T, שהיא שקולה ל-M = ((A/T)*(A/T)) / T. כאן M היא העוצמה, A היא עמודת amplitude ו-T היא עמודת period.
החזירו את המיקום ואת העוצמה הממוצעת בכל מיקום, תוך הכללת רעידות האדמה הגדולות בלבד (תנו לעמודה את השם avg_magnitude). כללו בתוצאה רק את המיקומים שבהם avg_magnitude גדול מ-1.
עגלו את התוצאות ל-2 ספרות אחרי הנקודה העשרונית.
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
2תנאים
יסודות התנאיםמילת המפתח ANDמילת המפתח ORמילת המפתח NOTשילוב של תנאים מרוביםסוגרייםערכים בוליאניים3פורמט החזרה ספציפי
ערכי Nullמיון תוצאות – חלק 1מיון תוצאות – חלק 2סיכום – חברת אבטחת סייברהגבלת מספר הרשומותסיכום – מפעל כלי רכב6אתגרי מבוא
חזרה – בחירות לפרלמנטחזרה – מעצר חשוד בידי המשטרהחזרה – כלי משקה בברחזרה – מהנדסים עמודות חדשותתרגלו בעצמכם: SQL אונליין