קיבוץ חלק 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 אונליין