Blog/SQL Projects for a Data Portfolio: 6 Projects With Free Datasets

SQL Projects for a Data Portfolio: 6 Projects With Free Datasets

Six SQL projects on free relational datasets that cover joins, CTEs, window functions and data-quality rules, with steps and example resume bullets.

Last updated: 13 October 2026 · By the Asuraa Team

Quick answer: Good SQL portfolio projects use multi-table datasets so you can show joins, CTEs and window functions. Six free options: Chinook music store revenue, Sakila film rental customer value, NYC TLC taxi trips (monthly Parquet files, best queried in DuckDB), IMDb ratings files, Formula 1 results 1950-2024, and Olympic history 1896-2016. SQL appeared in 20.1% of fresher listings in Asuraa's October 2026 report, so one documented SQL project is worth the effort.

Key takeaways

  • The strongest SQL portfolio projects use multi-table datasets that require joins, CTEs, window functions and NULL handling.
  • The Chinook sample database models a digital media store and ships scripts for MySQL, PostgreSQL, SQLite, SQL Server, Oracle and DB2.
  • NYC TLC publishes monthly yellow, green and for-hire vehicle trip records as Parquet files, which DuckDB can query directly.
  • IMDb's non-commercial datasets are gzipped tab-separated files refreshed daily and licensed for personal, non-commercial use.
  • Asuraa's October 2026 job market report found SQL named in 20.1% of fresher listings in India.

Which SQL projects should go in a data portfolio?

The best SQL portfolio projects use a relational dataset with several linked tables, so you can show joins, aggregations, window functions and CTEs answering real questions. The six projects below use free datasets, and together they cover every SQL skill an entry-level analyst interview usually tests.

ProjectDatasetSkills shownDifficulty
Music store revenue analysisChinook sample database (GitHub)Joins, GROUP BY, date functionsBeginner
Film rental customer lifetime valueSakila sample database (MySQL)Views, CTEs, customer metricsBeginner
Taxi demand and fare patternsNYC TLC Trip Record DataLarge files, DuckDB, time bucketingAdvanced
Film ratings explorerIMDb non-commercial datasetsMulti-file joins, NULL handling, rankingIntermediate
Formula 1 driver performanceFormula 1 World Championship 1950-2024 (Kaggle)Window functions, running totalsIntermediate
Olympic medal trends120 years of Olympic history (Kaggle)Deduplication, pivots, CASEIntermediate

Use PostgreSQL, MySQL or SQLite for the first five; use DuckDB for the taxi project, because it can query Parquet files directly. Save every query in a .sql file with comments; recruiters read queries, not screenshots.

What does each SQL project involve, step by step?

Each project lists a goal, steps, what it proves, a sample query pattern and an example resume bullet. Bracketed values in bullets are placeholders for your own results.

1. Music store revenue analysis

Goal: answer the questions a store manager asks: top customers, best-selling genres, revenue by country and month. Dataset: Chinook, a digital media store sample with artists, albums, tracks, invoices and customers, available as scripts for MySQL, PostgreSQL, SQLite, SQL Server, Oracle and DB2.

  1. Load the SQLite or PostgreSQL script and draw the schema diagram.
  2. Join invoice lines to tracks, albums and genres to get revenue by genre.
  3. Compute monthly revenue and month-on-month change.
  4. Find each country's top customer.
  5. Write a five-line summary at the top of the README.

Shows: confident multi-table joins and grouping. Example resume bullet (example only): "Wrote [n] SQL queries on the Chinook database to rank genres and customers by revenue; found [genre] produced [x]% of sales."

2. Film rental customer lifetime value

Goal: segment customers by lifetime value and rental frequency. Dataset: Sakila, MySQL's sample schema that highlights views, stored procedures and triggers; its tables include film, inventory, rental, payment, customer and store.

  1. Join payment, rental and customer to total spend per customer.
  2. Use a CTE to assign spend quartiles with NTILE(4).
  3. Compare rental frequency and favourite categories per quartile.
  4. Create a view that a dashboard could read directly.

Shows: CTEs, views and customer metrics. Example resume bullet (example only): "Built a customer value view in MySQL on the Sakila schema; showed the top quartile generated [x]% of payments."

3. Taxi demand and fare patterns

Goal: find peak demand hours, busiest zones and fare-per-mile patterns. Dataset: NYC TLC Trip Record Data, monthly yellow, green and for-hire vehicle trip files in Parquet, plus a taxi zone lookup table.

  1. Download one or two months of yellow taxi Parquet files and the zone lookup.
  2. Query them in DuckDB without loading into a server.
  3. Bucket trips by hour and weekday; join pickup zones to names.
  4. Filter unrealistic records (zero distance, negative fares) and document the rules.
  5. Compare fare per mile across zones.

Shows: working with millions of rows and data-quality rules. Example resume bullet (example only): "Queried [n] million NYC taxi trips in DuckDB; identified the [x] busiest pickup zones and removed [y]% invalid records with documented rules."

4. Film ratings explorer

Goal: find the highest-rated films by decade and genre, weighted by vote count. Dataset: IMDb non-commercial datasets, gzipped tab-separated files such as title.basics, title.ratings and title.principals, refreshed daily and licensed for personal, non-commercial use.

  1. Import title.basics and title.ratings; convert \N to NULL.
  2. Join on the title identifier and filter to movies.
  3. Set a minimum vote threshold so obscure titles do not dominate.
  4. Rank films within each decade with RANK() OVER (PARTITION BY decade).
  5. Add a query that lists frequent director and actor pairings from title.principals.

Shows: NULL handling, partitioned ranking and large text imports. Example resume bullet (example only): "Imported IMDb title and ratings files into PostgreSQL and ranked films by decade with window functions, applying a [n]-vote minimum."

5. Formula 1 driver performance

Goal: track drivers' cumulative points and teammate comparisons across seasons. Dataset: Formula 1 World Championship (1950-2024).

  1. Load the races, results, drivers and constructors files.
  2. Compute season points with a running total using SUM() OVER (ORDER BY round).
  3. Compare each driver with their teammate in the same race using a self-join.
  4. Use LAG() to show position change between consecutive races.

Shows: window functions, which are among the most common SQL interview topics. Example resume bullet (example only): "Used SUM, LAG and self-joins on 1950-2024 F1 data to compare [n] teammate pairs and chart season-long points races."

6. Olympic medal trends

Goal: show how India's and other countries' medal counts changed from 1896 to 2016. Dataset: 120 years of Olympic history, athlete bio data and medal results from Athens 1896 to Rio 2016.

  1. Load the athlete events table.
  2. Count team-event medals once per team, not once per athlete; document the rule.
  3. Pivot medals by country and Games with CASE WHEN.
  4. Compare India's medal record by sport with a similar-sized country.

Shows: deduplication logic and pivoting, two areas where beginner SQL often goes wrong. Example resume bullet (example only): "Corrected team-medal double counting across [n] Olympic records; built a country-by-Games pivot in SQL."

How do you present SQL projects so recruiters can read them?

Put each project in its own GitHub folder with a schema diagram, a commented .sql file and a README that lists each question next to its answer. Recruiters skim, so the README should show results without anyone running code.

  1. Start the README with the business questions in a numbered list.
  2. Under each question, paste the query and a small result table.
  3. Explain one data-quality decision you made.
  4. Add a short "what I would do next" section.
  5. Link the repository from your resume and LinkedIn.

The guide on how to build a portfolio for jobs covers layout, and Git and GitHub for freshers explains publishing. If you are still learning the syntax, follow how to learn SQL for jobs first, then practise with SQL interview questions.

What do most guides on SQL projects get wrong?

Most guides list datasets but never mention the query patterns employers test: joins across three or more tables, window functions, CTEs and careful NULL handling. A portfolio of twenty simple SELECT statements on one table shows less than one project with a correct running total.

Many also skip data-quality decisions. Real tables contain duplicates, invalid values and nulls. Documenting how you treated zero-distance taxi trips or team medals shows judgement, which is what separates an analyst from someone who memorised syntax.

Finally, SQL is rarely shown alone. Pair at least one project with a chart or dashboard so a non-technical reviewer can see the result.

How much SQL do fresher data jobs ask for?

SQL is one of the most requested skills in fresher data roles: Asuraa's October 2026 job market report found SQL named in 20.1% of all fresher listings, across roles beyond pure analytics. That makes one well-documented SQL project a strong addition to any data portfolio; the projects and portfolio guide for India shows how it fits with Python and dashboard work. When your bullets are ready, compare them with a target listing in the Asuraa resume reviewer.

Related guides

FAQ

What is a good first SQL project for a fresher?

Start with the Chinook sample database. It models a digital media store with artists, albums, tracks, invoices and customers, and ships ready-made scripts for SQLite, MySQL and PostgreSQL. Answer manager-style questions such as revenue by genre, top customer per country and monthly sales trend, then publish the queries with a short README.

Which SQL skills should a portfolio project show?

Show joins across three or more tables, GROUP BY with HAVING, CTEs, window functions such as RANK, LAG and running totals, CASE expressions for pivots, and NULL handling. Add one documented data-quality rule, such as removing zero-distance taxi trips. These match the topics most entry-level SQL interviews cover.

Can I use big data in a SQL portfolio without a server?

Yes. NYC TLC publishes monthly taxi trip files in Parquet format, and DuckDB can query Parquet directly on a laptop without loading data into a database server. One or two months of yellow taxi data is enough to show time bucketing, joins to the zone lookup and data cleaning at scale.

Is the IMDb dataset free to use for SQL practice?

IMDb offers subsets of its data for personal and non-commercial use. The files, such as title.basics and title.ratings, are gzipped tab-separated files refreshed daily, with missing values marked as \N. Check IMDb's licence terms before publishing derived data, and keep your portfolio repository to queries and summary results.

How do I show SQL projects on GitHub?

Create one folder per project with a schema diagram, a commented .sql file and a README. In the README, list each business question, paste the query and show a small result table underneath so reviewers can read results without running code. Add one paragraph on a data-quality decision you made and link the repository from your resume.

Should I use MySQL, PostgreSQL or SQLite for portfolio projects?

Any of them works for sample databases like Chinook and Sakila. PostgreSQL is a good default because its window function and CTE support is complete; SQLite needs no installation; MySQL is natural for Sakila, which is MySQL's own sample schema. Mention the engine in your README and resume bullet.

Final thoughts

One SQL project with clean, commented queries and documented data-quality rules says more than a long list of exercises. Start with Chinook or Sakila, then prove scale with the taxi data. When you are ready to apply, search for SQL-heavy fresher roles on Asuraa jobs.

Related articles

Share this article

Continue Reading

Data Science Career Paths

Explore different career trajectories in data science and find your perfect fit.

Read article →

Building Your DS Portfolio

Learn how to create projects that impress hiring managers and showcase your skills.

Read article →

Salary Negotiation Guide

Get the compensation you deserve with our proven negotiation strategies.

Review Your Resume →