Blog

Lesson 6  ·  Oct 9, 2026
Data Engineering Fundamentals

Combining tables with JOIN

Facts in one table, context in another — JOIN stitches them together on a shared key. Pandas .merge(), done inside the warehouse.

READ →
Lesson 5  ·  Oct 8, 2026
Data Engineering Fundamentals

Filtering groups with HAVING

WHERE filters rows before grouping; HAVING filters groups after aggregation. And why WHERE COUNT(*) >= 5 is invalid — which is exactly why HAVING exists.

READ →
Lesson 4  ·  Oct 7, 2026
Data Engineering Fundamentals

One summary per group with GROUP BY

Aggregates collapse a whole table into one number — GROUP BY collapses it into one number per bucket. The per-country, per-day, per-category breakdown behind every dashboard.

READ →
Lesson 3  ·  Oct 6, 2026
Data Engineering Fundamentals

Summarizing data with COUNT, SUM, and AVG

How many, how much, on average: the three aggregate functions that turn a million rows into a single dashboard number.

READ →
Lesson 2  ·  Oct 5, 2026
Data Engineering Fundamentals

Sorting and taking the top N with ORDER BY and LIMIT

The top-N pattern: sort descending, keep a few rows. Leaderboards, latest records, biggest tables — it all starts here.

READ →
Lesson 1  ·  Oct 4, 2026
Data Engineering Fundamentals

Reading data with SELECT and WHERE

The first thing you do with any new table: pick columns, filter rows. SELECT is the column list, WHERE is the row filter — and it maps exactly onto pandas.

READ →