המרת שורות לעמודות
חלק מהיחידה מעבר ליסודות במסלול ה-SQL של Coddy. שיעור 14 מתוך 27.
שלבו צבירה מותנית עם GROUP BY כדי להפוך שורות לעמודות. זו הגרסה של SQL לטבלת ציר בגיליון אלקטרוני.
נניח של־sales יש שורות כמו (month, product, units). כדי לראות שורה אחת לכל חודש עם עמודה אחת לכל מוצר:
SELECT
month,
SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b
FROM sales
GROUP BY monthהדלי ש־GROUP BY רואה עבור כל SUM(CASE …) הוא השורות של חודש אחד; CASE בוחר את החלק עבור מוצר אחד.
אתגר
קלטבלאות ועמודות זמינות:
sales:month,product,units
הפוך את הנתונים כך שכל שורה תהיה month אחד, עם העמודות האלה:
monthapples: סך כל ה־unitsעבור המוצר'apples'באותו חודשbananas: אותו הדבר עבור'bananas'cherries: אותו הדבר עבור'cherries'total: סך כל ה־unitsבכל המוצרים באותו חודש
החזר רק חודשים שבהם total הוא לפחות 20. מיין לפי month.
נסו בעצמכם
SELECT month,
-- ביטוי SUM(CASE ...) אחד לכל מוצר, בתוספת הסכום הכולל
FROM sales
GROUP BY month
-- סנן לחודשים שבהם הסכום הכולל >= 20
ORDER BY month
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מעבר ליסודות
תרגלו בעצמכם: SQL אונליין