Menu
CoddyTech

קריטריון 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.

הערה: 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 אונליין