Skip to content

theammarngp-makes/SQL-Engineering-Handbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

226 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SQL Engineering Handbook Banner

SQL Engineering Handbook

A production-style SQL curriculum β€” from your first SELECT to analytics engineering, interview prep, and real business case studies.

Typing SVG

Who It's For Β· Why Different Β· Roadmap Β· Structure Β· Quick Start Β· Docs Β· Contributing Β· FAQ


Who This Is For

If you're an aspiring or practicing Data Analyst or Analytics Engineer who wants a structured path from SQL fundamentals to real business analytics β€” not another disconnected list of .sql files β€” this handbook is built for you.

Honest status: Modules 00–09 (Foundations β†’ Date Functions) are complete and stable today. Modules 10–20, plus datasets/, projects/, exercises/, and cheatsheets/, are actively being built module by module. Live status always lives in ROADMAP.md β€” this README won't claim more than what's actually shipped.


What Makes It Different

Typical SQL repo SQL Engineering Handbook
πŸ—„οΈ Data One generic sample table Real-world-style datasets across HR, e-commerce, sales, finance, healthcare
πŸ“– Context Bare query, no explanation Business problem stated before every solution
⚠️ Failure modes Rarely documented Common mistakes called out per pattern
🎯 Interview angle Absent Dedicated interview-prep module + question bank
πŸ“… Progress Static snapshot Public roadmap, versioned via CHANGELOG.md
🀝 Contribution Solo repo Structured community process via CONTRIBUTING.md

Feature Highlights

πŸ—οΈ Production SQL

Every completed module follows one format: business context β†’ SQL solution β†’ explanation β†’ common mistakes β†’ interview follow-ups β†’ practice challenge.

πŸ“Š Real Datasets

Practice is built around real-world-style datasets (HR, e-commerce, sales, finance, healthcare) instead of one toy table, so the SQL transfers directly to a job.

🎯 Interview Ready

17_SQL_INTERVIEW_QUESTIONS/ and exercises/interview/ target the questions that come up most. Until they ship, 08_WINDOW_BUSINESS_CASES/ is the closest match.

🧠 Analytics Engineering

Modules progress from syntax β†’ analytical SQL (windows, CTEs) β†’ engineering concerns (views, indexes, query optimization).

πŸ§ͺ Exercises & Projects

exercises/ (beginner β†’ interview) and projects/ (HR analytics, e-commerce, pizza sales, Olist, NagpurLens) turn concepts into a portfolio.

πŸ“š Documentation Quality

Architecture, style guide, roadmap, and changelog are first-class files β€” not afterthoughts β€” so the repo stays maintainable as it grows.


Learning Roadmap

flowchart LR
    subgraph Foundations
    A[00 Sample Database] --> B[01 Fundamentals]
    B --> C[02 Aggregations]
    C --> D[03 Joins]
    end
    subgraph Core_SQL[Core SQL]
    D --> E[04 CASE WHEN]
    E --> F[05 Subqueries]
    F --> G[06 CTEs]
    end
    subgraph Analytical_SQL[Analytical SQL]
    G --> H[07 Window Functions]
    H --> I[08 Window Business Cases]
    I --> J[09 Date Functions]
    end
    subgraph Engineering_SQL[Engineering SQL]
    J --> K[10-13 Strings, Nulls, Advanced Aggs, Set Ops]
    K --> L[14-16 Views, Indexes, Query Optimization]
    end
    subgraph Career_Ready[Career Ready]
    L --> M[17 Interview Questions]
    M --> N[18 Business Case Studies]
    N --> O[19 Projects]
    O --> P[20 Cheatsheet]
    end
Loading
Full module-by-module status
# Module Status
00 Sample Database βœ… Complete
01 Fundamentals βœ… Complete
02 Aggregations βœ… Complete
03 Joins βœ… Complete
04 CASE WHEN βœ… Complete
05 Subqueries βœ… Complete
06 CTEs βœ… Complete
07 Window Functions βœ… Complete
08 Window Function Business Cases βœ… Complete
09 Date Functions βœ… Complete
10 String Functions βœ… Complete
11 NULL Handling & Data Cleaning βœ…οΈ Complete
12 Advanced Aggregations βœ…οΈ Complete
13 Set Operators βœ…οΈ Complete
14 Views πŸ”„ In Progress
15 Indexes πŸ”„ In Progress
16 Query Optimization πŸ”„ In Progress
17 SQL Interview Questions πŸ”„ In Progress
18 SQL Business Case Studies πŸ”„ In Progress
19 SQL Projects πŸ”„ In Progress
20 SQL Cheatsheet πŸ”„ In Progress

Legend: βœ… Complete Β Β·Β  πŸ”„ In Progress Β Β·Β  πŸ“‹ Planned

Live tracking always in ROADMAP.md.


Repository Structure

SQL-Engineering-Handbook/
β”‚
β”œβ”€β”€ README.md                          You are here
β”œβ”€β”€ ROADMAP.md                         Live module-by-module progress
β”œβ”€β”€ CHANGELOG.md                       Version history
β”œβ”€β”€ ARCHITECTURE.md                    Why the repo is organized this way
β”œβ”€β”€ STYLE_GUIDE.md                     Format every module/query follows
β”œβ”€β”€ CONTRIBUTING.md                    How to contribute
β”œβ”€β”€ CODE_OF_CONDUCT.md                 Community standards
β”œβ”€β”€ SECURITY.md                        How to report security concerns
β”œβ”€β”€ FAQ.md                             Common questions
β”œβ”€β”€ LICENSE                            MIT
β”‚
β”œβ”€β”€ .github/                           Issue/PR templates, CI workflows, CODEOWNERS
β”‚   β”œβ”€β”€ ISSUE_TEMPLATE/
β”‚   β”œβ”€β”€ workflows/
β”‚   β”œβ”€β”€ PULL_REQUEST_TEMPLATE.md
β”‚   └── CODEOWNERS
β”‚
β”œβ”€β”€ assets/                            Banners, diagrams, screenshots, logos
β”‚   β”œβ”€β”€ banners/
β”‚   β”œβ”€β”€ diagrams/
β”‚   β”œβ”€β”€ screenshots/
β”‚   β”œβ”€β”€ logos/
β”‚   └── gifs/
β”‚
β”œβ”€β”€ datasets/                          Real-world practice datasets
β”‚   β”œβ”€β”€ employee_management/
β”‚   β”œβ”€β”€ ecommerce/
β”‚   β”œβ”€β”€ sales/
β”‚   β”œβ”€β”€ finance/
β”‚   β”œβ”€β”€ healthcare/
β”‚   └── nagpurlens/
β”‚
β”œβ”€β”€ resources/                         Curated external learning material
β”‚   β”œβ”€β”€ books.md
β”‚   β”œβ”€β”€ blogs.md
β”‚   β”œβ”€β”€ documentation.md
β”‚   β”œβ”€β”€ youtube.md
β”‚   └── interview-resources.md
β”‚
β”œβ”€β”€ cheatsheets/                        Quick-reference syntax guides
β”‚   β”œβ”€β”€ joins/
β”‚   β”œβ”€β”€ ctes/
β”‚   β”œβ”€β”€ windows/
β”‚   β”œβ”€β”€ dates/
β”‚   β”œβ”€β”€ strings/
β”‚   └── aggregation/
β”‚
β”œβ”€β”€ exercises/                          Practice problems by difficulty
β”‚   β”œβ”€β”€ beginner/
β”‚   β”œβ”€β”€ intermediate/
β”‚   β”œβ”€β”€ advanced/
β”‚   └── interview/
β”‚
β”œβ”€β”€ projects/                           End-to-end portfolio projects
β”‚   β”œβ”€β”€ hr-analytics/
β”‚   β”œβ”€β”€ ecommerce/
β”‚   β”œβ”€β”€ pizza-sales/
β”‚   β”œβ”€β”€ olist/
β”‚   └── nagpurlens/
β”‚
β”œβ”€β”€ 00_SAMPLE_DATABASE/                 βœ… Practice schema + seed data
β”œβ”€β”€ 01_FUNDAMENTALS/                    βœ… SELECT, WHERE, ORDER BY, LIMIT
β”œβ”€β”€ 02_AGGREGATIONS/                    βœ… GROUP BY, HAVING, aggregate functions
β”œβ”€β”€ 03_JOINS/                           βœ… Inner, Left, Right, Full, Cross
β”œβ”€β”€ 04_CASE_WHEN/                       βœ… Conditional logic & transforms
β”œβ”€β”€ 05_SUBQUERIES/                      βœ… Scalar, inline, correlated
β”œβ”€β”€ 06_CTEs/                            βœ… Common Table Expressions & recursion
β”œβ”€β”€ 07_WINDOW_FUNCTIONS/                βœ… ROW_NUMBER, RANK, LAG/LEAD
β”œβ”€β”€ 08_WINDOW_BUSINESS_CASES/           βœ… Applied window function scenarios
β”œβ”€β”€ 09_DATE_FUNCTIONS/                  βœ… Date arithmetic, formatting, ranges
β”œβ”€β”€ 10_STRING_FUNCTIONS/                πŸ”„ In progress
β”œβ”€β”€ 11_NULL_HANDLING_AND_DATA_CLEANING/ πŸ”„ In progress
β”œβ”€β”€ 12_ADVANCED_AGGREGATIONS/           πŸ”„ In progress
β”œβ”€β”€ 13_SET_OPERATORS/                   πŸ”„ In progress
β”œβ”€β”€ 14_VIEWS/                           πŸ”„ In progress
β”œβ”€β”€ 15_INDEXES/                         πŸ”„ In progress
β”œβ”€β”€ 16_QUERY_OPTIMIZATION/              πŸ”„ In progress
β”œβ”€β”€ 17_SQL_INTERVIEW_QUESTIONS/         πŸ”„ In progress
β”œβ”€β”€ 18_SQL_BUSINESS_CASE_STUDIES/       πŸ”„ In progress
β”œβ”€β”€ 19_SQL_PROJECTS/                    πŸ”„ In progress
└── 20_SQL_CHEATSHEET/                  πŸ”„ In progress

Every numbered module is self-contained: read its own README, run its queries against the relevant dataset, then attempt the practice challenge at the end. See ARCHITECTURE.md for the reasoning behind this layout.


Quick Start

# 1. Clone the repository
git clone https://github.com/theammarngp-makes/SQL-Engineering-Handbook.git
cd SQL-Engineering-Handbook

# 2. Load a practice dataset (start with the core sample database)
mysql -u root -p < 00_SAMPLE_DATABASE/schema.sql

# 3. Start with Fundamentals, or jump to any completed module
cd 01_FUNDAMENTALS

Database: MySQL 8.0+. Queries are ANSI-standard where possible, with MySQL-specific notes called out β€” most run on PostgreSQL with minor syntax changes.


Learning Tracks

πŸ“˜ Sequential learner β€” go module by module

Work straight through 00_SAMPLE_DATABASE β†’ 09_DATE_FUNCTIONS (currently complete), then continue into 10–20 as they release. No prior SQL knowledge assumed.

🎯 Interview sprint β€” targeted prep

Once live, 17_SQL_INTERVIEW_QUESTIONS/ and exercises/interview/ will be the fastest path. Until then, 07_WINDOW_FUNCTIONS/ and 08_WINDOW_BUSINESS_CASES/ cover the most commonly tested interview topic.

πŸ“š Desk reference β€” search when you need a pattern

Bookmark the repo and jump directly to the numbered module matching the syntax you need on the job.


Sample Query

Salary ranking with window functions (from 07_WINDOW_FUNCTIONS/)

SELECT
    emp_id,
    emp_name,
    salary,
    RANK() OVER (ORDER BY salary DESC) AS salary_rank,
    LAG(salary) OVER (ORDER BY salary DESC) AS prev_salary
FROM employees;

Every completed module follows this format: business context β†’ SQL solution β†’ explanation β†’ common mistakes β†’ interview follow-ups β†’ practice challenge.


Documentation Hub

Doc Purpose
ROADMAP.md Live module-by-module progress and what's next
ARCHITECTURE.md How the repo, datasets, and modules are structured and why
STYLE_GUIDE.md Format every module and query follows
CHANGELOG.md Version history of the handbook
FAQ.md Common questions about setup and usage
CONTRIBUTING.md How to contribute
SECURITY.md How to report security concerns
CODE_OF_CONDUCT.md Community standards

GitHub features: Issues for bugs and requests Β· Discussions for questions about a specific query or module.


Contributing

This project is being built module by module, and contributions are genuinely welcome β€” new queries, dataset additions, exercises, corrections, or documentation improvements.

  1. Fork the repository
  2. Create a feature branch
  3. Follow the format in STYLE_GUIDE.md
  4. Open a pull request using the template in .github/PULL_REQUEST_TEMPLATE.md

Full standards live in CONTRIBUTING.md. Please review the CODE_OF_CONDUCT.md before participating.


FAQ

Is this finished? No β€” and it says so on purpose. Modules 00–09 are complete and stable. 10–20, plus datasets, exercises, projects, and cheatsheets, are actively being built. Check ROADMAP.md for live status.

Do I need MySQL specifically? Queries are ANSI-standard where possible, with MySQL-specific notes called out. Most run on PostgreSQL with minor syntax changes.

Is this beginner-friendly? Yes β€” start at 01_FUNDAMENTALS/. It assumes no prior SQL knowledge.

Can I use this for interview prep only? That's the goal of 17_SQL_INTERVIEW_QUESTIONS/ and exercises/interview/ once live; until then, 08_WINDOW_BUSINESS_CASES/ is the closest match.

More in FAQ.md.


License

Licensed under the MIT License. See LICENSE for details.


Author

Mohammad Ammar Aspiring Data Analyst Β· SQL Enthusiast Β· Data Storyteller

LinkedIn Β· GitHub


This handbook is built in public and updated regularly. If it's useful to you, starring the repo helps more learners find it β€” and following along tracks its progress from here to a full 21-module release.

About

Production-ready SQL Engineering Handbook with SQL tutorials, interview questions, real-world projects, query optimization, window functions, and analytics engineering examples.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors