cswork / libraryOpen practice workspace

Coding questions · Reevo

Count sports by calendar quarter in SQL

This question evaluates a candidate's ability to perform date-based grouping and aggregation in SQL, including extracting year and calendar quarter and counting rows per sport.

You are given a table games(date DATE, team_name TEXT, sport_name TEXT). Write a SQL query that returns, for each year and calendar quarter (Q1–Q 4), each sport_name and the count of rows in that quarter. Output columns: year, quarter, sport_name, cnt. Order results by year, quarter, cnt DESC, sport_name ASC.

Count sports by calendar quarter

Table games

columntypeconstraints
game_dateDATENOT NULL
team_nameVARCHAR(50)NOT NULL
sport_nameVARCHAR(50)NOT NULL

Sample data:

game_datesport_nameteam_name
2023-01-15BasketballLions
2023-02-10BasketballTigers
2023-03-20SoccerBears
2023-04-05BasketballLions
2023-04-18SoccerTigers
2023-06-30SoccerBears
2023-11-02BasketballLions
2024-01-09SoccerTigers
2024-03-11SoccerBears
2024-05-27BasketballLions
2024-07-04BasketballTigers
2024-10-31SoccerBears

Expected output

One row per (year, calendar quarter, sport_name) with the count of games in that year-quarter for that sport. Only quarters that have at least one game appear in the output.

cntquartersport_nameyear
2Q1Basketball2023
1Q1Soccer2023
2Q2Soccer2023
1Q2Basketball2023
1Q4Basketball2023
2Q1Soccer2024
1Q2Basketball2024
1Q3Basketball2024
1Q4Soccer2024

Hints

  1. Use EXTRACT(YEAR FROM ...) and EXTRACT(QUARTER FROM ...) to derive grouping keys.
  2. Group by year, quarter, and sport_name, and then COUNT(*) the rows in each group.