cswork / libraryOpen practice workspace

Coding questions · Otter.Ai

Find Every Project with the Most Employees

Build a PostgreSQL aggregation that returns every project tied for the largest employee count. This compact exercise checks grouping, maximum selection, tie preservation, empty-input behavior, and careful use of primary-key guarantees.

The interview report explicitly identified the “Project with Most Employees” SQL exercise. Use the following self-contained PostgreSQL schema:

employees
---------
employee_id       BIGINT  PRIMARY KEY
name              TEXT    NOT NULL
experience_years  INTEGER NOT NULL

project_assignments
-------------------
project_id   BIGINT NOT NULL
employee_id  BIGINT NOT NULL REFERENCES employees(employee_id)
PRIMARY KEY (project_id, employee_id)

Write one PostgreSQL query that returns the project or projects with the greatest number of assigned employees.

Return exactly one column:

  • project_id

Return all tied projects. Because the assignment table's primary key prevents duplicate employee assignments within a project, each row counts as one assigned employee. If there are no assignments, return no rows. Order the result by project_id ascending.

Find Every Project with the Most Employees

Use PostgreSQL with the employees and project_assignments tables shown below. Write one query that returns the project or projects with the greatest number of assigned employees. Return exactly one column named project_id, return all ties, and order the result by project_id ascending. The (project_id, employee_id) pair is unique, so every assignment row counts as one assigned employee. If project_assignments is empty, return no rows.

Table employees

columntypeconstraints
employee_idBIGINTPRIMARY KEY
nameTEXTNOT NULL
experience_yearsINTEGERNOT NULL

Sample data:

employee_idexperience_yearsname
18Ada
24Bo
36Cora
42Dev
510Emi
63Finn
77Gia
85Hugo
99Inez
101Jae
1112Kai

Table project_assignments

columntypeconstraints
project_idBIGINTNOT NULL
employee_idBIGINTNOT NULL, REFERENCES employees(employee_id)

Sample data:

employee_idproject_id
1101
2101
3101
4101
2205
5205
6205
7205
1309
8309
9309
10412

Expected output

project_id
101
205

Hints

  1. First count assignment rows for each project.
  2. Rank the per-project counts so every project tied for the largest count is retained.