AdvancedJOINs (INNER, LEFT, RIGHT, FULL)

Employee who has worked on most projects in their department

The query

SQL
WITH dept_leaders AS (
  SELECT
    e.emp_id,
    e.first_name,
    e.last_name,
    e.dept_id,
    d.dept_name,
    COUNT(DISTINCT pa.project_id) AS project_count,
    RANK() OVER (PARTITION BY e.dept_id ORDER BY COUNT(DISTINCT pa.project_id) DESC) AS rnk
  FROM employees e
  JOIN departments d ON e.dept_id = d.dept_id
  LEFT JOIN project_assignments pa ON e.emp_id = pa.emp_id
  GROUP BY e.emp_id, e.first_name, e.last_name, e.dept_id, d.dept_name
)
SELECT dept_name, first_name, last_name, project_count
FROM dept_leaders
WHERE rnk = 1
ORDER BY project_count DESC;
Tested against PostgreSQL 16

Note

CTE with window function to find top performer per department. RANK handles ties correctly.

Tables referenced