Everyday Data Science
Latest
Agentic workflows now power a third of surveyed enterprise automationAfrica's AI startup ecosystem posts record funding yearNew benchmark results reshape the coding-agent leaderboardNigeria launches national AI strategy with major investment planRwanda's sovereign AI cloud enters public betaThe future of AI agents: from tools to teammates

Tag

#sql

6 articles

TutorialThe Practical Data Analyst · Careers

Five CTE Traps That Return the Wrong Answer Quietly

Five CTE traps, each measured on one 12-row SQLite table: a random value that ran once, a recursion with no end, a $235 filter-order gap, a table name stolen by its own CTE, and a UNION that ate a path.

Ibrahim Denis Fofanah·Nov 10, 2026·10 min

TutorialThe Practical Data Analyst · Careers

Five String Traps That Rewrite Your Totals. A 12-Row Table Lost $415 Before a Single Clean.

A raw join on city names matched 8 of 12 rows and lost $415 of $1,420. GROUP BY invented four extra cities. COUNT said 11 emails existed; only 10 were real. Five traps, all measured.

Ibrahim Denis Fofanah·Nov 6, 2026·8 min

TutorialThe Practical Data Analyst · Tutorial

Your Query Is Slow. EXPLAIN Told You Why: Five Plan Checks That Catch It Before Users Do

Five EXPLAIN QUERY PLAN checks on 100,000 SQLite rows: SCAN versus SEARCH, a covering index, a join plan, a temp sort, and a LIKE trap where the index did not rescue the query at all.

Ibrahim Denis Fofanah·Oct 31, 2026·7 min

TutorialThe Practical Data Analyst · Careers

Five Aggregation Traps That Rewrite Your Totals. I Measured Each One on Twelve Rows.

Five aggregation traps measured on one 12-row sales table in SQLite 3.45.1: integer division, averages of averages, COUNT(*) vs COUNT(column), the NULL group, and WHERE vs HAVING.

Ibrahim Denis Fofanah·Oct 25, 2026·10 min

TutorialThe Practical Data Analyst · Careers

Five Date Traps That Move Money Between Months: I Measured Each One

Five controlled date experiments on a tiny orders table: a BETWEEN filter cut March from $420 to $170, a timezone moved $70 into February, and SQLite and pandas disagreed by three days on one month of arithmetic.

Ibrahim Denis Fofanah·Oct 21, 2026·10 min

TutorialThe Practical Data Analyst · Careers

Five JOIN Traps That Quietly Rewrite Your Numbers. One Orders Table Reported $620, $1,240 and $2,040.

A 6-order table holding $620 in revenue produced totals of $1,240 and $2,040 after two ordinary joins, then lost $70 to a third. Five JOIN traps, each shown on real output, each with a fix.

Ibrahim Denis Fofanah·Oct 16, 2026·7 min