Menu
Coddy logo textTech

קריטריון PARTITION BY

חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 59 מתוך 72.

אפשרות נוספת לסעיף OVER () היא PARTITION BY

היא מאפשרת לנו למספר את השורות בכל קבוצה בנפרד 

לדוגמה:

idtype
132t1
52t2
92t1
154t3
198t1
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1

פעולה זו תיצור עמודה שממספרת את השורות של כל סוג בנפרד, לפי סדר id (התוצאה שלהלן מוצגת בקיבוץ לפי סוג):

idtyperow_num
92t11
132t12
198t13
52t21
154t31

id 92 הוא בעל row_num 1 כי הוא ה-id הקטן ביותר ב-type t1.

הערה: ROW_NUMBER() דורשת סעיף ORDER BY בתוך OVER() כדי לקבוע כיצד יש למספר את השורות בתוך כל מחיצה.

אפשר אפילו לציין כמה עמודות בתוך PARTITION BY:

ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)
challenge icon

אתגר

קל

הטבלאות והעמודות הזמינות:

  • doors: id, publication_year
  • doors_specs: id, country, color

מפעל מייצר דלתות. יש למספר את הדלתות עבור כל שילוב של country ו-color שעבורו publication_year קטן מ-2000. תנו לעמודה הזו את השם row_num.

יש למספר את הדלתות בכל קבוצה בסדר עולה לפי id. יש להתעלם מדלתות ללא מפרט. מיינו את התוצאה הסופית בסדר עולה לפי id. 

נסו בעצמכם

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: SQL אונליין