# Analytics Engineering — Full Index > Learn analytics engineering from your current skill level by building. Complete URL index for analyticsengineering.com — course, practice library, projects, articles, glossary, and guides. Created by Eric Provencio (analytics engineer at Disney, Hulu, Nike, Peloton, Gopuff). Curated overview: [llms.txt](https://www.analyticsengineering.com/llms.txt) · Machine sitemap: [sitemap.xml](https://www.analyticsengineering.com/sitemap.xml) ## About this site analyticsengineering.com is a hands-on education platform for analytics engineering — the role that turns raw warehouse data into clean, tested, documented datasets using SQL, dbt, and dimensional modeling. **Platform scale (live sitemap, generated 2026-10-15):** - 119 published course lessons across 10 numbered modules - 1,604 graded exercises across 49 practice topics - 22 hands-on projects: 4 practice challenges, 18 applied labs, and 0 portfolio-ready builds - 1 human-reviewed capstone - 106 resource articles - 16 glossary terms - Free timed and arcade games using current exercise questions **Membership tiers:** - **Free** (free): Sample lessons, sample project, first exercises in select topics, SQL games. - **Practice Pass** (premium): Full practice library (1,604 graded exercises). - **Analytics Engineering Mastery** (ae-course): Personalized course path, local toolkit, human-reviewed capstone, projects, and practice library. **URL patterns:** - Topic hubs: `/{hubSlug}` - Practice: `/practice/{topicSlug}` · `/practice/{topicSlug}/{exerciseSlug}` - Projects: `/projects/{projectSlug}` - Articles: `/resources/{slug}` - Glossary: `/glossary/{termSlug}` - Comparisons: `/compare/{slug}` - Guides: `/guides/{slug}` - Course (members): `/learn/{moduleSlug}/{lessonSlug}` ## Getting started - [Start here](https://www.analyticsengineering.com/start-here): Onboarding — what to read, practice, or buy first. - [Skill diagnostic](https://www.analyticsengineering.com/diagnostic): Establish a starting point and get a personalized path. - [Learning roadmap](https://www.analyticsengineering.com/roadmap): Study plan from hubs, practice, articles, and modules. - [Sample lesson](https://www.analyticsengineering.com/sample-lesson): Free course preview. - [Sample project](https://www.analyticsengineering.com/sample-project): Free project walkthrough preview. - [Homepage](https://www.analyticsengineering.com/): Site entry point. ## Flagship public work - [Analytics Engineering: The Complete 2026 Guide](https://www.analyticsengineering.com/guides/analytics-engineering): Canonical long-form reference on the analytics engineering role, skills, 2026 salary bands, interview loop, and three paths from zero to hired. - [Interactive SQL join visualizer](https://www.analyticsengineering.com/sql/joins): Inspect matched, unmatched, and multiplied rows. - [Revenue analysis take-home](https://www.analyticsengineering.com/projects/take-home/revenue-fell-last-month): Versioned ecommerce case with a metric contract, rubric, and optional reference. - [Workforce employee attrition dataset](https://www.analyticsengineering.com/datasets/workforce-employee-attrition): Synthetic workforce files, documentation, and analysis paths. - [Metric definition worksheet](https://www.analyticsengineering.com/templates/metric-definition-worksheet): Blank template, completed instructor example, and decision notes. - [Analytics project README template](https://www.analyticsengineering.com/templates/project-readme): Blank template and completed project example. - [dbt debugging project](https://www.analyticsengineering.com/projects/data-forge-the-lost-metrics): Recover lost metric definitions and model trust. ## Free open-source toolkit - [Analytics Engineering Toolkit](https://www.analyticsengineering.com/toolkit): Free, open-source plugin and Agent Skills for repository-aware SQL, dbt, data modeling, metrics, data quality, and pipeline work. In paired evaluation on two unseen task sets, the same agent missed 40% and 38% fewer required checks with the toolkit installed. - [Install AE Toolkit](https://www.analyticsengineering.com/toolkit/install): Install instructions for Cursor, VS Code, Google Antigravity, Claude Code, Codex, Gemini CLI, OpenCode, and other Agent Skills hosts. - [AE Toolkit source code](https://github.com/analyticsengineering/ae-toolkit): MIT-licensed source, documentation, tests, releases, and evaluation method. Built by Eric Provencio at AnalyticsEngineering.com. ## Topic hubs - [SQL for Analytics Engineers](https://www.analyticsengineering.com/sql): The query language every analytics engineer ships every day — from SELECT to window functions, query optimization, and production patterns. - [dbt for Analytics Engineers](https://www.analyticsengineering.com/dbt): Everything an analytics engineer needs to learn, ship, and interview with dbt — from your first model to a production-grade dbt Cloud project. - [Data Modeling](https://www.analyticsengineering.com/data-modeling): Star and snowflake schemas, slowly-changing dimensions, fact and dimension tables, and the modeling patterns analytics engineers ship in dbt. - [BigQuery for Analytics Engineers](https://www.analyticsengineering.com/bigquery): Google's serverless warehouse, used as the backbone of our capstone — partitioning, clustering, BigQuery SQL patterns, and dbt on BigQuery. - [Snowflake for Analytics Engineers](https://www.analyticsengineering.com/snowflake): The cloud data warehouse most enterprise data teams ship on — architecture, warehouses, partitioning, and dbt on Snowflake. - [Looker & Looker Studio](https://www.analyticsengineering.com/looker): How the BI layer sits on top of dbt — Looker / Looker Studio dashboards, performance, and the metrics-layer conversation. - [Python for Analytics Engineers](https://www.analyticsengineering.com/python): The Python an analytics engineer actually uses — pandas for one-off analysis, scripting for ingestion, glue for orchestration. - [Analytics Engineering Career](https://www.analyticsengineering.com/career): How to break in, how to advance, and how to negotiate. Written by people who hire analytics engineers. - [Analytics Engineering Interview Prep](https://www.analyticsengineering.com/interview-prep): Practice SQL, modeling, dbt, project explanation, and behavioral questions in the formats employers commonly use. ## Course — Analytics Engineering Mastery - [Course sales page](https://www.analyticsengineering.com/course): Self-paced analytics engineering course for data analysts: SQL, dbt, data modeling, and a human-reviewed BigQuery + dbt Cloud + Looker Studio capstone. $997 one-time, lifetime access, 7-day refund. - [Pricing](https://www.analyticsengineering.com/pricing): Membership tiers and checkout. - [Capstone marketing](https://www.analyticsengineering.com/capstone): BigQuery + dbt + Looker end-to-end build. - [Sample lesson](https://www.analyticsengineering.com/sample-lesson): Try before you buy. **Modules** (member player at `/learn/{moduleSlug}`): - **Start Here** (`course-introduction`, 1 available lessons) - **Analytics Engineering Foundations** (`module-1`, 13 available lessons) - **Data Systems & Warehouse Fundamentals** (`module-2`, 11 available lessons) - **SQL for Analytics Engineering** (`module-3`, 25 available lessons) - **Data Modeling & Metrics** (`module-4`, 7 available lessons) - **dbt & Analytics Development Workflow** (`module-5`, 6 available lessons) - **Data Quality, Testing & Observability** (`module-6`, 7 available lessons) - **Python, APIs & Data Automation** (`module-7`, 5 available lessons) - **Metrics, BI & Stakeholder Delivery** (`module-8`, 6 available lessons) - **AI-Native Analytics Engineering** (`module-9`, 11 available lessons) - **Production Analytics Engineering Capstone** (`module-10`, 26 available lessons) Module 10 capstone flow: Google Cloud + BigQuery → dbt Cloud + GitHub → staging/intermediate/marts → Looker Studio dashboard. ## SQL games (free) - [SQL games hub](https://www.analyticsengineering.com/practice/games): Storyline quizzes and timed drills. - [SQL Rapid-Fire](https://www.analyticsengineering.com/practice/games/rapid-fire): Timed MCQ sprint. - [Elemental Battle](https://www.analyticsengineering.com/practice/games/elemental-battle): SQL arcade — fire, water, earth, air. - [Space Battle](https://www.analyticsengineering.com/practice/games/space-battle): SQL arcade in deep space. ## Practice library — all topics - [Practice index](https://www.analyticsengineering.com/practice): 1,604 graded exercises across 49 topics. ### SQL (25 topics) - [Python: SQL Integration With Python](https://www.analyticsengineering.com/practice/python-sql-integration-with-python) - [SQL Alien Invasion Challenge: Defend Earth](https://www.analyticsengineering.com/practice/sql-alien-invasion-challenge-defend-earth) - [SQL Exercise: The Volcano Eruption Emergency](https://www.analyticsengineering.com/practice/sql-exercise-the-volcano-eruption-emergency) - [SQL Mystery Challenge: The Case of the Vanishing Artifacts](https://www.analyticsengineering.com/practice/sql-mystery-challenge-the-case-of-the-vanishing-artifacts) - [SQL Quiz (200 Questions)](https://www.analyticsengineering.com/practice/sql-quiz-200-questions) - [SQL Survival Challenge: Last City on Earth](https://www.analyticsengineering.com/practice/sql-survival-challenge-last-city-on-earth) - [SQL: Advanced Filtering and Pattern Matching](https://www.analyticsengineering.com/practice/sql-advanced-filtering-and-pattern-matching) - [SQL: Aggregate Functions and GROUP BY](https://www.analyticsengineering.com/practice/sql-aggregate-functions-and-group-by) - [SQL: Basic Filtering Rows](https://www.analyticsengineering.com/practice/sql-basic-filtering-rows) - [SQL: Basic Joins (INNER JOIN)](https://www.analyticsengineering.com/practice/sql-basic-joins-inner-join) - [SQL: Basic Select](https://www.analyticsengineering.com/practice/sql-basic-select) - [SQL: Common Table Expressions (CTEs)](https://www.analyticsengineering.com/practice/sql-common-table-expressions-ctes) - [SQL: Conditional Expressions (CASE)](https://www.analyticsengineering.com/practice/sql-conditional-expressions-case) - [SQL: Date and Time Functions](https://www.analyticsengineering.com/practice/sql-date-and-time-functions) - [SQL: Filtering Aggregations With HAVING](https://www.analyticsengineering.com/practice/sql-filtering-aggregations-with-having) - [SQL: LEFT JOIN](https://www.analyticsengineering.com/practice/sql-left-join) - [SQL: Multi-Table Joins And Complex Join Conditions](https://www.analyticsengineering.com/practice/sql-multi-table-joins-and-complex-join-conditions) - [SQL: Numeric and Other Scalar Functions](https://www.analyticsengineering.com/practice/sql-numeric-and-other-scalar-functions) - [SQL: Set Operations](https://www.analyticsengineering.com/practice/sql-set-operations) - [SQL: Sorting and Limiting](https://www.analyticsengineering.com/practice/sql-sorting-and-limiting) - [SQL: String Filtering and Pattern Matching](https://www.analyticsengineering.com/practice/sql-string-filtering-and-pattern-matching) - [SQL: String Functions](https://www.analyticsengineering.com/practice/sql-string-functions) - [SQL: Subqueries In SELECT And FROM](https://www.analyticsengineering.com/practice/sql-subqueries-in-select-and-from) - [SQL: Subqueries In WHERE](https://www.analyticsengineering.com/practice/sql-subqueries-in-where) - [SQL: Window Functions](https://www.analyticsengineering.com/practice/sql-window-functions) ### Python (17 topics) - [Python – File Handling (Reading/Writing CSV, JSON)](https://www.analyticsengineering.com/practice/python-file-handling-reading-writing-csv-json) - [Python Quiz (200 Questions)](https://www.analyticsengineering.com/practice/python-quiz-200-questions) - [Python: Aggregations And Group Operations](https://www.analyticsengineering.com/practice/python-aggregations-and-group-operations) - [Python: Comprehensions (List, Dict, Set)](https://www.analyticsengineering.com/practice/python-comprehensions-list-dict-set) - [Python: Control Flow (If, Else, Loops)](https://www.analyticsengineering.com/practice/python-control-flow-if-else-loops) - [Python: Data Cleaning And Preprocessing](https://www.analyticsengineering.com/practice/python-data-cleaning-and-preprocessing) - [Python: Data Structures (Lists, Tuples, Dictionaries, Sets)](https://www.analyticsengineering.com/practice/python-data-structures-lists-tuples-dictionaries-sets) - [Python: Data Types & Variables](https://www.analyticsengineering.com/practice/python-data-types-variables) - [Python: Dates And Times](https://www.analyticsengineering.com/practice/python-dates-and-times) - [Python: Error Handling And Exceptions](https://www.analyticsengineering.com/practice/python-error-handling-and-exceptions) - [Python: Exploratory Data Analysis](https://www.analyticsengineering.com/practice/python-exploratory-data-analysis) - [Python: Merging And Joining Datasets](https://www.analyticsengineering.com/practice/python-merging-and-joining-datasets) - [Python: Modules And Packages](https://www.analyticsengineering.com/practice/python-modules-and-packages) - [Python: Object Oriented Programming](https://www.analyticsengineering.com/practice/python-object-oriented-programming) - [Python: Pandas DataFrames](https://www.analyticsengineering.com/practice/python-pandas-dataframes) - [Python: Regular Expressions](https://www.analyticsengineering.com/practice/python-regular-expressions) - [Python: Writing Efficient Code (Time Complexity, Vectorization)](https://www.analyticsengineering.com/practice/python-writing-efficient-code-time-complexity-vectorization) ### dbt (1 topics) - [dbt Quiz (100 Questions)](https://www.analyticsengineering.com/practice/dbt-quiz-100-questions) ### Data Modeling (1 topics) - [Data Modeling Quiz (100 Questions)](https://www.analyticsengineering.com/practice/data-modeling-quiz-100-questions) ### ETL / ELT (1 topics) - [ETL / ELT Quiz (200 Questions)](https://www.analyticsengineering.com/practice/etl-elt-quiz-200-questions) ### Themed Challenges (3 topics) - [Zombie Virus – Part 1: Stopping the Release](https://www.analyticsengineering.com/practice/zombie-virus-part-1-stopping-the-release) - [Zombie Virus – Part 2: Aftermath Of The Virus Release](https://www.analyticsengineering.com/practice/zombie-virus-part-2-aftermath-of-the-virus-release) - [Zombie Virus – Part 3: The Cure](https://www.analyticsengineering.com/practice/zombie-virus-part-3-the-cure) ### Other (1 topics) - [Free Dataset Analysis](https://www.analyticsengineering.com/practice/free-dataset-analysis) ### Free sample exercises (139 indexed pages) First exercises in select topics are free without an account. Indexed exercise URLs follow `/practice/{topicSlug}/{exerciseSlug}`. - https://www.analyticsengineering.com/practice/free-dataset-analysis/bike-sharing-commute-demand - https://www.analyticsengineering.com/practice/free-dataset-analysis/ecommerce-monthly-net-sales - https://www.analyticsengineering.com/practice/free-dataset-analysis/ecommerce-previous-next-purchase - https://www.analyticsengineering.com/practice/free-dataset-analysis/inventory-closing-balance - https://www.analyticsengineering.com/practice/free-dataset-analysis/marketing-cleaning-and-attribution - https://www.analyticsengineering.com/practice/free-dataset-analysis/saas-january-cohort-retention - https://www.analyticsengineering.com/practice/python-aggregations-and-group-operations/group-df-orders-by-status-and-compute-mean-total-amount-1 - https://www.analyticsengineering.com/practice/python-aggregations-and-group-operations/multiple-aggregations-on-quantity-in-df-order-items-3 - https://www.analyticsengineering.com/practice/python-aggregations-and-group-operations/sum-quantity-per-product-in-df-order-items-2 - https://www.analyticsengineering.com/practice/python-comprehensions-list-dict-set/convert-strings-to-uppercase-3 - https://www.analyticsengineering.com/practice/python-comprehensions-list-dict-set/even-numbers-1-to-20-2 - https://www.analyticsengineering.com/practice/python-comprehensions-list-dict-set/list-of-squares-1-to-10-1 - https://www.analyticsengineering.com/practice/python-control-flow-if-else-loops/check-if-number-is-positive-1 - https://www.analyticsengineering.com/practice/python-control-flow-if-else-loops/even-or-odd-check-2 - https://www.analyticsengineering.com/practice/python-control-flow-if-else-loops/print-each-character-in-a-string-3 - https://www.analyticsengineering.com/practice/python-data-cleaning-and-preprocessing/convert-column-to-datetime-2 - https://www.analyticsengineering.com/practice/python-data-cleaning-and-preprocessing/replace-missing-with-mean-3 - https://www.analyticsengineering.com/practice/python-data-cleaning-and-preprocessing/strip-whitespace-from-strings-1 - https://www.analyticsengineering.com/practice/python-data-structures-lists-tuples-dictionaries-sets/append-an-element-to-a-list-2 - https://www.analyticsengineering.com/practice/python-data-structures-lists-tuples-dictionaries-sets/convert-a-list-to-a-tuple-3 - https://www.analyticsengineering.com/practice/python-data-structures-lists-tuples-dictionaries-sets/create-and-print-a-list-of-integers-1 - https://www.analyticsengineering.com/practice/python-data-types-variables/assign-sub-dataset-3 - https://www.analyticsengineering.com/practice/python-data-types-variables/check-keys-of-the-dataset-2 - https://www.analyticsengineering.com/practice/python-data-types-variables/check-the-type-of-the-loaded-data-1 - https://www.analyticsengineering.com/practice/python-data-types-variables/inspect-an-element-in-a-list-4 - https://www.analyticsengineering.com/practice/python-data-types-variables/print-a-specific-field-5 - https://www.analyticsengineering.com/practice/python-dates-and-times/create-datetime-for-given-date-2 - https://www.analyticsengineering.com/practice/python-dates-and-times/format-current-date-as-yyyy-mm-dd-3 - https://www.analyticsengineering.com/practice/python-dates-and-times/print-current-date-and-time-1 - https://www.analyticsengineering.com/practice/python-error-handling-and-exceptions/catch-zerodivisionerror-1 - https://www.analyticsengineering.com/practice/python-error-handling-and-exceptions/handle-keyerror-2 - https://www.analyticsengineering.com/practice/python-error-handling-and-exceptions/raise-valueerror-3 - https://www.analyticsengineering.com/practice/python-exploratory-data-analysis/compute-mean-median-mode-of-sepal-length-3 - https://www.analyticsengineering.com/practice/python-exploratory-data-analysis/inspect-the-dataframe-1 - https://www.analyticsengineering.com/practice/python-exploratory-data-analysis/print-shape-and-columns-2 - https://www.analyticsengineering.com/practice/python-file-handling-reading-writing-csv-json/read-contents-of-a-file-2 - https://www.analyticsengineering.com/practice/python-file-handling-reading-writing-csv-json/use-a-with-statement-3 - https://www.analyticsengineering.com/practice/python-file-handling-reading-writing-csv-json/write-a-single-line-to-a-file-1 - https://www.analyticsengineering.com/practice/python-merging-and-joining-datasets/inner-join-on-common-key-1 - https://www.analyticsengineering.com/practice/python-merging-and-joining-datasets/left-join-and-print-shape-2 - https://www.analyticsengineering.com/practice/python-merging-and-joining-datasets/right-join-example-3 - https://www.analyticsengineering.com/practice/python-modules-and-packages/from-datetime-import-date-3 - https://www.analyticsengineering.com/practice/python-modules-and-packages/import-math-and-print-math-pi-1 - https://www.analyticsengineering.com/practice/python-modules-and-packages/use-math-sqrt-2 - https://www.analyticsengineering.com/practice/python-object-oriented-programming/add-a-method-that-prints-vroom-3 - https://www.analyticsengineering.com/practice/python-object-oriented-programming/define-a-class-car-1 - https://www.analyticsengineering.com/practice/python-object-oriented-programming/print-instance-attributes-2 - https://www.analyticsengineering.com/practice/python-pandas-dataframes/1-create-dataframe-from-dict-1 - https://www.analyticsengineering.com/practice/python-pandas-dataframes/2-print-first-5-rows-2 - https://www.analyticsengineering.com/practice/python-pandas-dataframes/3-summary-statistics-3 - https://www.analyticsengineering.com/practice/python-regular-expressions/check-if-string-starts-with-hello-2 - https://www.analyticsengineering.com/practice/python-regular-expressions/find-all-occurrences-of-a-1 - https://www.analyticsengineering.com/practice/python-regular-expressions/replace-all-digits-with-3 - https://www.analyticsengineering.com/practice/python-sql-integration-with-python/create-a-table-2 - https://www.analyticsengineering.com/practice/python-sql-integration-with-python/distinct-customer-cities-1 - https://www.analyticsengineering.com/practice/python-sql-integration-with-python/insert-rows-3 - https://www.analyticsengineering.com/practice/python-writing-efficient-code-time-complexity-vectorization/list-comprehension-vs-for-loop-3 - https://www.analyticsengineering.com/practice/python-writing-efficient-code-time-complexity-vectorization/measure-time-of-a-small-loop-1 - https://www.analyticsengineering.com/practice/python-writing-efficient-code-time-complexity-vectorization/vectorize-a-computation-with-numpy-fixed-seed-2 - https://www.analyticsengineering.com/practice/sql-advanced-filtering-and-pattern-matching/check-for-non-null-values-2 - https://www.analyticsengineering.com/practice/sql-advanced-filtering-and-pattern-matching/using-between-for-date-ranges-3 - https://www.analyticsengineering.com/practice/sql-advanced-filtering-and-pattern-matching/using-is-null-1 - https://www.analyticsengineering.com/practice/sql-aggregate-functions-and-group-by/avg-price-per-category-3 - https://www.analyticsengineering.com/practice/sql-aggregate-functions-and-group-by/count-per-category-1 - https://www.analyticsengineering.com/practice/sql-aggregate-functions-and-group-by/sum-of-orders-by-status-2 - https://www.analyticsengineering.com/practice/sql-alien-invasion-challenge-defend-earth/task-1-identify-extreme-threat-aliens-1 - https://www.analyticsengineering.com/practice/sql-alien-invasion-challenge-defend-earth/task-2-find-cities-with-minimal-shelters-2 - https://www.analyticsengineering.com/practice/sql-alien-invasion-challenge-defend-earth/task-3-track-alien-movements-to-target-cities-3 - https://www.analyticsengineering.com/practice/sql-basic-filtering-rows/basic-where-condition-1 - https://www.analyticsengineering.com/practice/sql-basic-filtering-rows/equality-filter-2 - https://www.analyticsengineering.com/practice/sql-basic-filtering-rows/not-equal-filter-3 - https://www.analyticsengineering.com/practice/sql-basic-joins-inner-join/combine-customer-and-order-data-1 - https://www.analyticsengineering.com/practice/sql-basic-joins-inner-join/display-order-amounts-with-customer-names-2 - https://www.analyticsengineering.com/practice/sql-basic-joins-inner-join/link-employees-to-their-departments-3 - https://www.analyticsengineering.com/practice/sql-basic-select/combine-distinct-with-an-alias-5 - https://www.analyticsengineering.com/practice/sql-basic-select/distinct-categories-2 - https://www.analyticsengineering.com/practice/sql-basic-select/distinct-customer-cities-1 - https://www.analyticsengineering.com/practice/sql-basic-select/simple-column-alias-3 - https://www.analyticsengineering.com/practice/sql-basic-select/table-alias-4 - https://www.analyticsengineering.com/practice/sql-common-table-expressions-ctes/aggregating-inventory-movements-in-a-cte-3 - https://www.analyticsengineering.com/practice/sql-common-table-expressions-ctes/basic-cte-for-clarity-1 - https://www.analyticsengineering.com/practice/sql-common-table-expressions-ctes/cte-for-category-averages-2 - https://www.analyticsengineering.com/practice/sql-conditional-expressions-case/categorize-employees-by-salary-range-3 - https://www.analyticsengineering.com/practice/sql-conditional-expressions-case/categorize-orders-by-value-1 - https://www.analyticsengineering.com/practice/sql-conditional-expressions-case/categorize-products-by-stock-level-2 - https://www.analyticsengineering.com/practice/sql-date-and-time-functions/calculate-how-many-days-old-each-order-is-2 - https://www.analyticsengineering.com/practice/sql-date-and-time-functions/extract-year-from-order-date-1 - https://www.analyticsengineering.com/practice/sql-date-and-time-functions/filter-orders-within-a-30-day-window-3 - https://www.analyticsengineering.com/practice/sql-exercise-the-volcano-eruption-emergency/task-1-identify-the-most-dangerous-volcano-1 - https://www.analyticsengineering.com/practice/sql-exercise-the-volcano-eruption-emergency/task-2-list-all-at-risk-neighborhoods-2 - https://www.analyticsengineering.com/practice/sql-exercise-the-volcano-eruption-emergency/task-3-calculate-shelter-capacity-3 - https://www.analyticsengineering.com/practice/sql-filtering-aggregations-with-having/basic-having-with-count-1 - https://www.analyticsengineering.com/practice/sql-filtering-aggregations-with-having/having-with-avg-3 - https://www.analyticsengineering.com/practice/sql-filtering-aggregations-with-having/having-with-sum-2 - https://www.analyticsengineering.com/practice/sql-left-join/show-categories-without-products-1 - https://www.analyticsengineering.com/practice/sql-left-join/show-employees-without-departments-2 - https://www.analyticsengineering.com/practice/sql-left-join/show-shipping-addresses-with-no-orders-3 - https://www.analyticsengineering.com/practice/sql-multi-table-joins-and-complex-join-conditions/joining-four-tables-3 - https://www.analyticsengineering.com/practice/sql-multi-table-joins-and-complex-join-conditions/joining-three-tables-1 - https://www.analyticsengineering.com/practice/sql-multi-table-joins-and-complex-join-conditions/non-equal-join-condition-range-join-2 - https://www.analyticsengineering.com/practice/sql-mystery-challenge-the-case-of-the-vanishing-artifacts/task-1-list-missing-artifacts-1 - https://www.analyticsengineering.com/practice/sql-mystery-challenge-the-case-of-the-vanishing-artifacts/task-2-staff-vault-access-2 - https://www.analyticsengineering.com/practice/sql-mystery-challenge-the-case-of-the-vanishing-artifacts/task-3-visitor-vault-access-3 - https://www.analyticsengineering.com/practice/sql-numeric-and-other-scalar-functions/absolute-value-of-inventory-changes-3 - https://www.analyticsengineering.com/practice/sql-numeric-and-other-scalar-functions/ceiling-and-floor-on-order-amounts-2 - https://www.analyticsengineering.com/practice/sql-numeric-and-other-scalar-functions/round-product-prices-1 - https://www.analyticsengineering.com/practice/sql-set-operations/combining-two-lists-of-customers-1 - https://www.analyticsengineering.com/practice/sql-set-operations/intersect-for-common-results-3 - https://www.analyticsengineering.com/practice/sql-set-operations/union-all-to-include-duplicates-2 - https://www.analyticsengineering.com/practice/sql-sorting-and-limiting/basic-order-by-1 - https://www.analyticsengineering.com/practice/sql-sorting-and-limiting/descending-order-2 - https://www.analyticsengineering.com/practice/sql-sorting-and-limiting/multiple-columns-in-order-by-3 - https://www.analyticsengineering.com/practice/sql-string-filtering-and-pattern-matching/basic-like-1 - https://www.analyticsengineering.com/practice/sql-string-filtering-and-pattern-matching/ends-with-pattern-3 - https://www.analyticsengineering.com/practice/sql-string-filtering-and-pattern-matching/starts-with-pattern-2 - https://www.analyticsengineering.com/practice/sql-string-functions/concatenate-customer-names-2 - https://www.analyticsengineering.com/practice/sql-string-functions/extract-a-substring-1 - https://www.analyticsengineering.com/practice/sql-string-functions/trim-spaces-from-strings-3 - https://www.analyticsengineering.com/practice/sql-subqueries-in-select-and-from/category-counts-in-a-subquery-2 - https://www.analyticsengineering.com/practice/sql-subqueries-in-select-and-from/inline-view-of-cheap-products-3 - https://www.analyticsengineering.com/practice/sql-subqueries-in-select-and-from/show-orders-above-the-average-1 - https://www.analyticsengineering.com/practice/sql-subqueries-in-where/above-average-orders-1 - https://www.analyticsengineering.com/practice/sql-subqueries-in-where/customers-with-high-value-orders-2 - https://www.analyticsengineering.com/practice/sql-subqueries-in-where/products-cheaper-than-a-category-s-average-3 - https://www.analyticsengineering.com/practice/sql-survival-challenge-last-city-on-earth/task-1-counting-the-last-survivors-1 - https://www.analyticsengineering.com/practice/sql-survival-challenge-last-city-on-earth/task-2-the-hunger-countdown-2 - https://www.analyticsengineering.com/practice/sql-survival-challenge-last-city-on-earth/task-3-power-grid-on-the-brink-3 - https://www.analyticsengineering.com/practice/sql-window-functions/basic-row-number-1 - https://www.analyticsengineering.com/practice/sql-window-functions/partition-by-category-3 - https://www.analyticsengineering.com/practice/sql-window-functions/ranking-orders-by-amount-2 - https://www.analyticsengineering.com/practice/zombie-virus-part-1-stopping-the-release/task-1-identify-labs-with-high-security-incidents-1 - https://www.analyticsengineering.com/practice/zombie-virus-part-1-stopping-the-release/task-2-track-unauthorized-access-logs-2 - https://www.analyticsengineering.com/practice/zombie-virus-part-1-stopping-the-release/task-3-pinpoint-employee-overlap-with-incidents-3 - https://www.analyticsengineering.com/practice/zombie-virus-part-2-aftermath-of-the-virus-release/task-1-identify-cities-with-the-highest-infection-rates-1 - https://www.analyticsengineering.com/practice/zombie-virus-part-2-aftermath-of-the-virus-release/task-2-spot-cities-with-rising-infection-trends-2 - https://www.analyticsengineering.com/practice/zombie-virus-part-2-aftermath-of-the-virus-release/task-3-leaders-in-danger-3 - https://www.analyticsengineering.com/practice/zombie-virus-part-3-the-cure/task-1-identify-the-peak-infection-day-in-each-city-1 - https://www.analyticsengineering.com/practice/zombie-virus-part-3-the-cure/task-2-identify-city-leaders-with-dangerous-trends-2 - https://www.analyticsengineering.com/practice/zombie-virus-part-3-the-cure/task-3-determine-the-vaccine-distribution-dates-for-cities-3 ## Projects — all classifications - [Projects index](https://www.analyticsengineering.com/projects): 22 practice challenges and applied labs, with selected work designed for portfolio use. - [Portfolio guide](https://www.analyticsengineering.com/projects/portfolio): How to present projects in interviews. - [Archaeological Expedition Database: Ancient Discoveries](https://www.analyticsengineering.com/projects/archaeological-expedition-database-ancient-discoveries) - [Champion Fantasy League](https://www.analyticsengineering.com/projects/champion-fantasy-league) - [Cosmic Observatory Database](https://www.analyticsengineering.com/projects/cosmic-observatory-database) - [Data Forge: The Lost Metrics](https://www.analyticsengineering.com/projects/data-forge-the-lost-metrics) - [Data Forge: The Lost Metrics - Premium](https://www.analyticsengineering.com/projects/data-forge-the-lost-metrics-premium) - [Data Modeling: Pizza Planet Party](https://www.analyticsengineering.com/projects/data-modeling-pizza-planet-party) - [Data Modeling: The Great Dimension Quest](https://www.analyticsengineering.com/projects/data-modeling-great-dimension-quest) - [EcoSphere: Sustainable Smart City Data Lab](https://www.analyticsengineering.com/projects/ecosphere-sustainable-smart-city-data-lab) - [Farm Data Harvest: Understanding ETL vs ELT](https://www.analyticsengineering.com/projects/farm-data-harvest-understanding-etl-vs-elt) - [Global Pandemic Response Center: Emergency Database Design](https://www.analyticsengineering.com/projects/global-pandemic-response-center-emergency-database-design) - [Monster Hunter’s Guild: Bestiary Database Design](https://www.analyticsengineering.com/projects/monster-hunters-guild-bestiary-database-design) - [Ocean Adventure: Deep Sea Data Modeling](https://www.analyticsengineering.com/projects/ocean-adventure-deep-sea-data-modeling) - [Skyland Dragon Riders](https://www.analyticsengineering.com/projects/skyland-dragon-riders) - [Space Station Data Mission: ETL Vs ELT](https://www.analyticsengineering.com/projects/space-station-data-mission-etl-vs-elt) - [Sports Equipment Pro Shop](https://www.analyticsengineering.com/projects/sports-equipment-pro-shop) - [SQL Alien Invasion Challenge: Defend Earth](https://www.analyticsengineering.com/projects/sql-alien-invasion-challenge-defend-earth) - [SQL Exercise: The Volcano Eruption Emergency](https://www.analyticsengineering.com/projects/sql-exercise-the-volcano-eruption-emergency) - [SQL Mystery Challenge: The Case of the Vanishing Artifacts](https://www.analyticsengineering.com/projects/sql-mystery-challenge-the-case-of-the-vanishing-artifacts) - [SQL Survival Challenge: Last City on Earth](https://www.analyticsengineering.com/projects/sql-survival-challenge-last-city-on-earth) - [Zombie Virus - Part 1: Stopping the Release](https://www.analyticsengineering.com/projects/zombie-virus-part-1-stopping-the-release) - [Zombie Virus - Part 2: Aftermath of the Virus Release](https://www.analyticsengineering.com/projects/zombie-virus-part-2-aftermath-of-the-virus-release) - [Zombie Virus - Phase 3: The Cure](https://www.analyticsengineering.com/projects/zombie-virus-phase-3-the-cure) ## Resources — all articles - [Resources index](https://www.analyticsengineering.com/resources): 106 articles on SQL, dbt, modeling, career, BI, and architecture. ### Analytics Engineering (31) - [AI and Machine Learning Fundamentals for Analytics Engineers: Essential Skills and Concepts](https://www.analyticsengineering.com/resources/ai-and-machine-learning-fundamentals-for-analytics-engineers) - [AI-Powered Data Cleansing Tools You Should Try: Transform Your Data Workflow](https://www.analyticsengineering.com/resources/ai-powered-data-cleansing-tools-you-should-try) - [Airflow vs Dagster vs Prefect: Choosing an Orchestrator for Analytics](https://www.analyticsengineering.com/resources/dagster-vs-airflow) - [Analytics Engineer Role & Responsibilities: Skills, Tools, and Impact](https://www.analyticsengineering.com/resources/analytics-engineer-role-responsibilities) - [Analytics Engineer vs. Data Analyst: Key Differences Explained](https://www.analyticsengineering.com/resources/analytics-engineer-vs-data-analyst-key-differences) - [Apache Airflow vs Prefect: Which Scheduler for Analytics Engineering?](https://www.analyticsengineering.com/resources/apache-airflow-vs-prefect-which-scheduler-for-analytics-engineering) - [Best AI Data Assistants for Analytics Professionals: 2025 Guide](https://www.analyticsengineering.com/resources/best-ai-data-assistants-for-analytics-professionals) - [Best Practices for Data Documentation: Fundamentals & Strategies](https://www.analyticsengineering.com/resources/best-practices-for-data-documentation) - [Cloud Skills for Analytics Engineers: AWS, Azure, and GCP](https://www.analyticsengineering.com/resources/essential-cloud-computing-skills-for-analytics-engineers-aws-azure-gcp) - [Data Lineage for Analytics Engineers: An Introduction Guide](https://www.analyticsengineering.com/resources/data-lineage-for-analytics-engineers-an-introduction) - [Data Observability Explained: Why Analytics Engineers Should Care](https://www.analyticsengineering.com/resources/data-observability-explained-why-analytics-engineers-should-care) - [Data Testing Essentials: Ensure Accuracy in Your Models for Reliable Results](https://www.analyticsengineering.com/resources/data-testing-essentials-ensure-accuracy-in-your-models) - [DataHub vs Amundsen vs Atlan: Data Catalogs Compared](https://www.analyticsengineering.com/resources/automated-data-catalogs-datahub-vs-amundsen-vs-atlan) - [ETL vs ELT Explained Simply: Key Differences, Pros, and Use Cases](https://www.analyticsengineering.com/resources/etl-vs-elt-explained-simply) - [How Generative AI is Changing the Role of Analytics Engineers: New Skills, Workflows, and Impact](https://www.analyticsengineering.com/resources/how-generative-ai-is-changing-the-role-of-analytics-engineers) - [How to Become an Analytics Engineer Without a CS Degree](https://www.analyticsengineering.com/resources/how-to-become-an-analytics-engineer-without-a-cs-degree) - [How to Build an Analytics Engineering Case Study](https://www.analyticsengineering.com/resources/creating-a-powerful-analytics-engineering-case-study) - [How to Integrate AI Tools into Your Analytics Workflow: A Step-by-Step Guide](https://www.analyticsengineering.com/resources/how-to-integrate-ai-tools-into-your-analytics-workflow) - [How to Set Up Your First GitHub Repository for Data Projects: Step-by-Step Guide](https://www.analyticsengineering.com/resources/how-to-set-up-your-first-github-repository-for-data-projects) - [Intro to AI Tools for Analytics Engineers: Essential Guide](https://www.analyticsengineering.com/resources/intro-to-ai-tools-for-analytics-engineers) - [Introductory Guide to Data Mesh for Analytics Engineer: Principles, Architecture, and Implementation](https://www.analyticsengineering.com/resources/introductory-guide-to-data-mesh-for-analytics-engineer) - [Optimizing Your GitHub Profile for Analytics Roles: Proven Strategies](https://www.analyticsengineering.com/resources/optimizing-your-github-profile-for-analytics-roles) - [Prompt Engineering for Analytics Engineers: Maximize Productivity with AI](https://www.analyticsengineering.com/resources/prompt-engineering-for-analytics-engineers-maximize-productivity-with-ai) - [Reverse ETL Explained: Use Cases and How It Works](https://www.analyticsengineering.com/resources/reverse-etl-explained) - [The Basics of Data Version Control (DVC): How to Manage Data for ML](https://www.analyticsengineering.com/resources/the-basics-of-data-version-control-dvc) - [The Complete Guide to GitHub for Data Professionals: Master Version Control and Collaboration](https://www.analyticsengineering.com/resources/the-complete-guide-to-github-for-data-professionals) - [The Future of Analytics Engineering: What Is Actually Changing](https://www.analyticsengineering.com/resources/the-future-of-analytics-engineering-2025-and-beyond) - [Top 10 Git Commands for Data Professionals: Key Concepts & Best Practices](https://www.analyticsengineering.com/resources/top-10-git-commands-for-data-professionals) - [What Companies Look for When Hiring Analytics Engineers: Skills, Trends & Employer Expectations](https://www.analyticsengineering.com/resources/what-companies-look-for-when-hiring-analytics-engineers) - [What Does an Analytics Engineer Do? Daily Tasks and Key Responsibilities](https://www.analyticsengineering.com/resources/what-does-an-analytics-engineer-do-daily-tasks-and-responsibilities) - [What Is Analytics Engineering? Definition, Role, and Skills](https://www.analyticsengineering.com/resources/what-is-analytics-engineering) ### SQL (17) - [5 Essential SQL Commands Every Analytics Engineer Should Know: Core Queries for Data Impact](https://www.analyticsengineering.com/resources/5-essential-sql-commands-every-analytics-engineer-should-know) - [Beginner’s Guide to JSON in SQL: Understanding and Using JSON Data](https://www.analyticsengineering.com/resources/beginners-guide-to-json-in-sql) - [Clustered vs Non-Clustered Indexes: Performance Benchmarks Explained](https://www.analyticsengineering.com/resources/clustered-vs-non-clustered-indexes-performance-benchmarks) - [Common Table Expressions (CTE) Tutorial for Beginners: Essential SQL Skills](https://www.analyticsengineering.com/resources/common-table-expressions-cte-tutorial-for-beginners) - [DuckDB Tutorial: Install, Query CSV and Parquet, and Use It from Python](https://www.analyticsengineering.com/resources/duckdb-tutorial-analytics-on-your-laptop) - [HAVING vs WHERE in SQL: Clause Differences with Examples](https://www.analyticsengineering.com/resources/sql-having-vs-where) - [LAG and LEAD in SQL: Lag and Lead Functions Made Simple](https://www.analyticsengineering.com/resources/sql-lag-and-lead-functions) - [Learn SQL: Introduction to SQL with a No‑Fluff 4‑Week Plan](https://www.analyticsengineering.com/resources/how-to-learn-sql-for-data-analytics) - [Mastering SQL: A Comprehensive Tutorial for Data Success](https://www.analyticsengineering.com/resources/mastering-sql-a-comprehensive-tutorial) - [Query Optimization Basics: Improve Your SQL Performance Quickly](https://www.analyticsengineering.com/resources/query-optimization-basics-improve-your-sql-performance-quickly) - [SQL Anti-Patterns That Hurt Dashboard Performance: Key Issues & Solutions](https://www.analyticsengineering.com/resources/sql-anti-patterns-that-hurt-dashboard-performance) - [SQL Date and Time Functions Every Analytics Engineer Should Know: A Practical Guide](https://www.analyticsengineering.com/resources/sql-date-and-time-functions-every-analytics-engineer-should-know) - [SQL Joins Explained in Simple Terms: Your Essential Guide](https://www.analyticsengineering.com/resources/sql-joins-explained-in-simple-terms) - [SQL Joins Explained with Visual Diagrams: A Comprehensive Guide](https://www.analyticsengineering.com/resources/sql-joins-explained-with-visual-diagrams) - [SQL Window Functions Explained With Examples: A Complete Guide](https://www.analyticsengineering.com/resources/sql-window-functions-explained-with-examples) - [Window Functions Explained: Ranking, Aggregation & Gap-Filling in Analytics](https://www.analyticsengineering.com/resources/window-functions-explained-ranking-aggregation-gap-filling) - [Working with XML in SQL Server for Analytics: Complete Guide](https://www.analyticsengineering.com/resources/working-with-xml-in-sql-server-for-analytics) ### dbt (17) - [dbt Alternatives: SQLMesh, Dataform, and Other Options Compared](https://www.analyticsengineering.com/resources/open-source-alternatives-to-dbt-are-they-worth-it) - [dbt Cloud vs Core: Feature Comparison 2025—Comprehensive Guide](https://www.analyticsengineering.com/resources/dbt-cloud-vs-core-feature-comparison-2025) - [dbt Date Spine: dbt_utils.date_spine Example and Calendar Table](https://www.analyticsengineering.com/resources/dbt-date-spine) - [dbt Exposures: Define Downstream Dashboards and Track Lineage](https://www.analyticsengineering.com/resources/dbt-exposures-guide) - [dbt Macros & Jinja Tips Every Analytics Engineer Should Know: Expert Guide](https://www.analyticsengineering.com/resources/dbt-macros-jinja-tips-every-analytics-engineer-should-know) - [dbt Project Structure: Staging, Intermediate, and Marts Done Right](https://www.analyticsengineering.com/resources/dbt-project-structure-best-practices) - [dbt ref() vs source(): What Each Does and When to Use It](https://www.analyticsengineering.com/resources/dbt-ref-vs-source) - [dbt Seeds: What They Are, When to Use Them, and dbt seed Examples](https://www.analyticsengineering.com/resources/dbt-seeds-guide) - [dbt Semantic Layer for Analytics Engineers: MetricFlow & dbt Labs](https://www.analyticsengineering.com/resources/dbt-semantic-layer-explained) - [dbt Snapshots: dbt snapshot Playbook (dbt developer hub)](https://www.analyticsengineering.com/resources/dbt-snapshots-explained) - [dbt Tests: dbt test, Data Test, and Unit Test Guide](https://www.analyticsengineering.com/resources/dbt-tests-complete-guide) - [dbt Tutorial for Beginners: Learn dbt, the Data Build Tool](https://www.analyticsengineering.com/resources/dbt-tutorial-for-beginners) - [dbt vs Airflow: Different Jobs, Often Used Together](https://www.analyticsengineering.com/resources/dbt-cloud-vs-airflow-comparing-popular-data-engineering-tools) - [How Analytics Engineers Can Implement Incremental Models](https://www.analyticsengineering.com/resources/how-analytics-engineers-can-implement-incremental-models-with-dbt-for-scalable-data-pipelines) - [How to Implement CI/CD for Your Analytics Projects: Step-by-Step Guide](https://www.analyticsengineering.com/resources/how-to-implement-cicd-for-your-analytics-projects) - [Streaming Data Models with dbt and Kafka: Patterns That Work](https://www.analyticsengineering.com/resources/building-streaming-data-models-with-dbt-kafka) - [What is dbt (Data Build Tool)? A Simple Explanation for Data Teams](https://www.analyticsengineering.com/resources/what-is-dbt-data-build-tool-a-simple-explanation) ### Data Modeling (12) - [Change Data Capture Patterns for Analytics Pipelines: The Complete Guide](https://www.analyticsengineering.com/resources/change-data-capture-patterns-for-analytics-pipelines) - [Data Modeling Basics: Star Schema vs. Snowflake Schema Explained](https://www.analyticsengineering.com/resources/data-modeling-basics-star-schema-vs-snowflake-schema) - [Data Warehouse Schema Design: Star Schema to Galaxy](https://www.analyticsengineering.com/resources/data-warehouse-schema-design) - [Data Warehouse vs Data Lake: Simplified for Beginners – Key Differences, Uses, and Decision Guide](https://www.analyticsengineering.com/resources/data-warehouse-vs-data-lake-simplified-for-beginners) - [Fact Table vs Dimension Table: Differences, Grain, and Examples](https://www.analyticsengineering.com/resources/explaining-fact-and-dimension-tables-for-beginners) - [Implementing Data Products in a Data Mesh: Essential Strategies and Practices](https://www.analyticsengineering.com/resources/implementing-data-products-in-a-data-mesh) - [Medallion Architecture on Databricks: A Data Architecture Guide](https://www.analyticsengineering.com/resources/medallion-architecture-explained) - [Natural Key vs Surrogate Key: Definitions, Examples, and When to Use Each](https://www.analyticsengineering.com/resources/surrogate-vs-natural-keys-choosing-the-right-primary-key) - [Normalization vs Denormalization: Normal Forms and When to Denormalize](https://www.analyticsengineering.com/resources/understanding-database-normalization-and-denormalization) - [Slowly Changing Dimensions: Types 1, 2, and 3 with SCD Type 2 Examples](https://www.analyticsengineering.com/resources/slowly-changing-dimensions-type-2-explained) - [Top Data Modeling Best Practices for Efficient Analytics Engineering](https://www.analyticsengineering.com/resources/top-data-modeling-best-practices-for-efficient-analytics-engineering) - [What Is a Lakehouse? Architecture & Use-Cases Explained in Depth](https://www.analyticsengineering.com/resources/what-is-a-lakehouse-architecture-use-cases) ### Python (2) - [Python Basics for Analytics Engineering: The Essential Starting Guide](https://www.analyticsengineering.com/resources/python-basics-for-analytics-engineering-where-to-start) - [Python Pandas Tutorial for Analytics Engineers: Mastering Data Analysis and Engineering Techniques](https://www.analyticsengineering.com/resources/python-pandas-tutorial-for-analytics-engineers) ### BigQuery (5) - [BigQuery Cost Optimization on Google Cloud: 12 Techniques](https://www.analyticsengineering.com/resources/bigquery-cost-optimization) - [BigQuery SQL Best Practices for Analysts: Optimize Performance, Reduce Cost](https://www.analyticsengineering.com/resources/bigquery-sql-best-practices-for-analysts) - [Parquet in BigQuery: How to Load, Query, and Optimize Parquet Files](https://www.analyticsengineering.com/resources/storing-querying-parquet-data-in-bigquery) - [Partitioning Strategies in Snowflake & BigQuery: Cost Control Guide](https://www.analyticsengineering.com/resources/partitioning-strategies-in-snowflake-bigquery-for-query-cost-control) - [SQL QUALIFY Clause: Filter Window Functions Without Subqueries](https://www.analyticsengineering.com/resources/sql-qualify-clause) ### Snowflake (1) - [A Beginner’s Guide to Snowflake for Analytics Engineers: Essential Concepts and Best Practices](https://www.analyticsengineering.com/resources/a-beginners-guide-to-snowflake-for-analytics-engineers) ### Looker & BI (3) - [Optimizing Looker Performance: Best Practices for Faster Dashboards](https://www.analyticsengineering.com/resources/optimizing-looker-performance-best-practices-for-faster-dashboards) - [Top 5 BI Tools Every Analytics Engineer Should Know in 2025](https://www.analyticsengineering.com/resources/top-5-bi-tools-every-analytics-engineer-should-know-looker-power-bi-tableau-metabase-sigma) - [What Is a Metrics Layer? Metric Definitions and the Semantic Layer](https://www.analyticsengineering.com/resources/metrics-layer-explained) ### Interview Prep (6) - [30 dbt Interview Questions and Answers (From Real Screens)](https://www.analyticsengineering.com/resources/dbt-interview-questions-and-answers) - [Analytics Engineering Interview Mistakes and How to Avoid Them: A Complete Guide](https://www.analyticsengineering.com/resources/analytics-engineering-interview-mistakes-and-how-to-avoid-them) - [Common SQL Mistakes Beginners Make During Interviews: Essential Pitfalls to Avoid](https://www.analyticsengineering.com/resources/common-sql-mistakes-beginners-make-during-interviews) - [How to Explain Analytics Engineering Projects During an Interview: A Step-By-Step Guide](https://www.analyticsengineering.com/resources/how-to-explain-analytics-engineering-projects-during-an-interview) - [How to Handle Technical Interviews Without Panicking: Proven Strategies for Success](https://www.analyticsengineering.com/resources/how-to-handle-technical-interviews-without-panicking) - [Interview Prep: 50 Questions and Answers for Analytics Engineer Roles](https://www.analyticsengineering.com/resources/interview-prep-50-questions-and-answers-for-analytics-engineer-roles) ### Career (12) - [5 Analytics Engineering Portfolio Projects for Data Engineers](https://www.analyticsengineering.com/resources/analytics-engineering-portfolio-projects) - [Analytics Engineer Resume Guide: Templates and Tips for Success](https://www.analyticsengineering.com/resources/analytics-engineer-resume-guide-templates-and-tips-for-success) - [Analytics Engineer Salary 2026: Levels, Location, Negotiation](https://www.analyticsengineering.com/resources/analytics-engineer-salary-guide) - [Analytics Engineering Career Path: How to Advance Quickly in Data](https://www.analyticsengineering.com/resources/analytics-engineering-career-path-how-to-advance-quickly) - [Analytics Engineering Job Titles Explained: Related Roles and Career Paths](https://www.analyticsengineering.com/resources/analytics-engineering-job-titles-explained) - [Analytics Engineering Roadmap: Zero to Analytics Engineer in 6 Months](https://www.analyticsengineering.com/resources/analytics-engineering-roadmap) - [Best Analytics Engineering Communities & Forums to Join: Top Picks for 2025](https://www.analyticsengineering.com/resources/best-analytics-engineering-communities-forums-to-join) - [Effective Communication Skills for Analytics Engineers: Presenting Data Insights for Impact](https://www.analyticsengineering.com/resources/effective-communication-skills-for-analytics-engineers-how-to-present-data-insights) - [From BI Analyst to Analytics Engineer: A Practical Transition Plan](https://www.analyticsengineering.com/resources/from-bi-analyst-to-analytics-engineer-how-to-transition-successfully) - [How to Negotiate an Analytics Engineer Offer](https://www.analyticsengineering.com/resources/how-to-negotiate-your-salary-as-an-analytics-engineer) - [Navigating Analytics Engineering Internships: Complete Guide for Success](https://www.analyticsengineering.com/resources/navigating-analytics-engineering-internships-complete-guide) - [Top Certifications for Aspiring Analytics Engineers: Comprehensive Guide](https://www.analyticsengineering.com/resources/top-certifications-for-aspiring-analytics-engineers) ## Guides - [Guides index](https://www.analyticsengineering.com/guides): Long-form guides: the complete analytics engineering career guide and interview preparation. - [Analytics Engineering: The Complete 2026 Guide (Role, Skills, Salary, Path)](https://www.analyticsengineering.com/guides/analytics-engineering): Flagship long-form reference for analytics engineering. What the role is, how it compares to adjacent data careers, the skills and tools it requires, and a realistic path from zero to hired. - [The Analytics Engineering Interview Kit](https://www.analyticsengineering.com/guides/analytics-engineering-interview-kit): Representative SQL, dbt, modeling, portfolio, and behavioral questions, with worked answers and evaluation criteria. ## Comparisons - [Compare index](https://www.analyticsengineering.com/compare): Side-by-side tool and role comparisons. - [BigQuery vs Snowflake](https://www.analyticsengineering.com/compare/bigquery-vs-snowflake): Pricing, performance, and dbt fit for the two warehouses analytics engineers use most. - [Analytics Engineer vs Data Engineer](https://www.analyticsengineering.com/compare/analytics-engineer-vs-data-engineer): Two roles that work side by side — and how to tell which one fits you. ## Glossary — all terms - [Glossary index](https://www.analyticsengineering.com/glossary): 16 analytics-engineering terms. ### Analytics engineer - [Analytics engineer](https://www.analyticsengineering.com/glossary/analytics-engineer): Role. The person who turns raw, loaded data into clean, tested, documented datasets that analysts and stakeholders can trust — usually with SQL and dbt, sitting between data engineering and data analysis. ### Fact table - [Fact table](https://www.analyticsengineering.com/glossary/fact-table): Data modeling. The central table in a star schema that stores measurable business events — one row per event (an order, a click, a payment) — with numeric measures and foreign keys to dimension tables. ### Dimension table - [Dimension table](https://www.analyticsengineering.com/glossary/dimension-table): Data modeling. A table of descriptive attributes — customers, products, dates — that you join to a fact table to slice and label its measures. One row per entity, identified by a surrogate key. ### Star schema - [Star schema](https://www.analyticsengineering.com/glossary/star-schema): Data modeling. A dimensional model with one central fact table joined to several dimension tables — drawn out, it looks like a star. The default warehouse design for fast, understandable analytics. ### Grain - [Grain](https://www.analyticsengineering.com/glossary/grain): Data modeling. The precise definition of what a single row in a table represents. Declaring the grain — e.g. “one row per order line per day” — is the first and most important step in modeling a fact table. ### Slowly changing dimension (SCD) - [Slowly changing dimension (SCD)](https://www.analyticsengineering.com/glossary/slowly-changing-dimension): Data modeling. A pattern for handling dimension attributes that change over time. Type 1 overwrites the old value; Type 2 keeps history by adding a new row with valid-from/valid-to dates. ### Surrogate key - [Surrogate key](https://www.analyticsengineering.com/glossary/surrogate-key): Data modeling. A warehouse-generated unique identifier for a dimension row — independent of any source system ID. It keeps joins stable when natural keys are messy, reused, or change. ### Dimensional modeling - [Dimensional modeling](https://www.analyticsengineering.com/glossary/dimensional-modeling): Data modeling. The discipline of structuring warehouse data into facts and dimensions (usually star schemas) optimized for analytical querying and human comprehension, popularized by Ralph Kimball. ### dbt model - [dbt model](https://www.analyticsengineering.com/glossary/dbt-model): dbt. A single SQL SELECT statement in a dbt project that defines one transformed table or view. dbt handles the DDL, dependencies, and materialization so you just write the SELECT. ### Staging model - [Staging model](https://www.analyticsengineering.com/glossary/staging-model): dbt. The first dbt layer: one staging model per source table that does light cleanup — renaming columns, casting types, basic standardization — with no joins or business logic. ### Incremental model - [Incremental model](https://www.analyticsengineering.com/glossary/incremental-model): dbt. A dbt materialization that, after the first full build, only processes and appends new or changed rows on each run — used to keep large fact tables affordable and fast to refresh. ### Materialization - [Materialization](https://www.analyticsengineering.com/glossary/materialization): dbt. How dbt persists a model in the warehouse — as a view, a table, an incremental table, or ephemeral (inlined CTE). Chosen per model to balance freshness, cost, and query speed. ### Data mart - [Data mart](https://www.analyticsengineering.com/glossary/data-mart): Data modeling. A curated, business-facing set of tables built for a specific team or subject area — finance, marketing, product — that analysts and BI tools query directly. ### Common table expression (CTE) - [Common table expression (CTE)](https://www.analyticsengineering.com/glossary/cte): SQL. A named, temporary result set defined with a WITH clause that you reference later in the same query — the primary tool for writing readable, layered, reviewable SQL. ### Window function - [Window function](https://www.analyticsengineering.com/glossary/window-function): SQL. A SQL function that computes across a set of rows related to the current row — running totals, rankings, period-over-period — without collapsing them into one row like GROUP BY does. ### Idempotency - [Idempotency](https://www.analyticsengineering.com/glossary/idempotency): Data pipelines. The property that running a pipeline (or rebuilding a model) multiple times produces the same result as running it once — no duplicates, no drift. A core requirement for reliable data. ## Optional - [About Eric Provencio](https://www.analyticsengineering.com/about): Author background. - [Coaching](https://www.analyticsengineering.com/coaching): 1:1 analytics-engineering coaching. - [Webinar](https://www.analyticsengineering.com/webinar): Live training sessions. - [Terms of service](https://www.analyticsengineering.com/terms) - [Privacy policy](https://www.analyticsengineering.com/privacy) - [Sitemap](https://www.analyticsengineering.com/sitemap.xml): XML sitemap of all public URLs.