Menu
Coddy logo textTech

N המובילים בכל קבוצה

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

"העובד בעל השכר הגבוה ביותר בכל מחלקה" הוא דוגמה קלאסית. המתכון הוא תמיד ROW_NUMBER() עם PARTITION BY, ואז מסננים לשורה 1.

WITH ranked AS (
    SELECT name, department, salary,
           ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS rn
    FROM employees
)
SELECT name, department, salary FROM ranked WHERE rn = 1

רוצה את 3 הראשונים במקום את הראשון? שנה את WHERE rn = 1 ל־WHERE rn <= 3. רוצה לאפשר שוויון במקום הראשון? החלף את ROW_NUMBER() ב־RANK().

challenge icon

אתגר

קל

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

  • employees: id, name, department, salary

החזר את העובד בעל השכר הגבוה ביותר בכל department. הצג את name, department ו-salary, בסדר לפי department. אם שני עובדים חולקים את השכר הגבוה ביותר במחלקה, החזר רק אחד מהם: את זה שה-id שלו נמוך יותר.

נסו בעצמכם

WITH ranked AS (
    -- ROW_NUMBER() OVER (PARTITION BY department ORDER BY ...)
)
SELECT name, department, salary FROM ranked WHERE rn = 1
ORDER BY department
quiz iconבחנו את עצמכם

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

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

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