Menu
Coddy logo textTech

קריטריון PARTITION BY

שיעור 5 מתוך 13 בקורס SQL למתקדמים של Coddy.

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

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

לדוגמה:

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

פעולה זו תיצור עמודה שתמספר כל סוג בנפרד:

idtyperow_num
132t11
52t21
92t12
154t31
198t13

id 92 קיבל row_num 2 כי הוא השורה השנייה מסוג type t1

אפשר גם לשלב PARTITION BY עם ORDER BY:

SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1

פעולה זו תמספר את השורות בסדר עולה לפי ה-id של כל סוג:

idtyperow_num
132t12
52t21
92t11
154t31
198t13

כעת ל-id 132 יש row_num 2 כי הוא גדול מ-92 וקטן מ-198.

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

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

אתגר

קל

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

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

נסו בעצמכם

כל השיעורים ביחידה SQL למתקדמים

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