Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL Joins and CTEs

MediumSQL · PostgreSQL00:00
Practice interviewer
In session
5 left
00:00

Your question is SQL Joins and CTEs. Start with the requirements and the four tables on the right.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.

Problem

Explain how you use SQL joins and CTEs, and relate it to a past project you worked on.

Using the supplied tables, demonstrate the explanation with a query that summarizes active projects. Include projects without assignments or recorded hours so the result shows how unmatched records are handled.

Output

  1. One row per active project.
  2. Columns: project_id, project_name, assigned_consultants, total_hours, billable_hours, utilization_pct, and project_rank.
  3. Include all active projects, order by billable_hours descending and project_id ascending, and assign equal ranks to projects with equal billable hours.

Schema

consultants
ColumnTypeDescription
consultant_idPKINTConsultant identifier
consultant_nameVARCHAR(100)Consultant name
roleVARCHAR(80)Consultant role
projects
ColumnTypeDescription
project_idPKINTProject identifier
project_nameVARCHAR(150)Project name
statusVARCHAR(20)Project lifecycle status
assignments
ColumnTypeDescription
assignment_idPKINTAssignment identifier
consultant_idINTAssigned consultant
project_idINTAssigned project
assignment_endDATEAssignment end date
time_entries
ColumnTypeDescription
entry_idPKINTTime entry identifier
assignment_idINTRelated assignment
entry_dateDATEDate hours were recorded
hoursNUMERIC(10,2)Recorded hours
billableBOOLEANWhether the hours are billable
Tablesconsultantsprojectsassignmentstime_entries
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results