Starting Our Data Exploration in Maji Ndogo: A Hands-On SQL Adventure
When I first opened the Maji Ndogo database, I wasn’t just looking at rows and columns, I was stepping into a story. This project isn’t your typical data assignment. It’s written like a conversation, with instructions delivered in a chat format by a fictional mentor named Chidi. That style made the whole experience feel more like a guided adventure than a technical task. And honestly? It made learning SQL feel human.
Getting to Know the Data
The first step was simple: connect to the database and run a query to see what tables exist. That’s when I met the backbone of Maji Ndogo; eight tables, each holding a piece of the puzzle about water access, quality and pollution across the region.
From there, I explored the different tables like the location table using a limited SELECT * query. This particular one gave me a feel for how locations are structured, each with an address, province, town and whether it’s urban or not.
Digging Into Water Sources
Next, I looked at the water_source table to find all the unique types of water sources. This helped me understand the different ways people in Maji Ndogo get their water i.e. rivers, wells, shared taps and home taps (some broken, some working).
I also investigated which sources had long queues. Imagine waiting over 500 minutes — more than 8 hours — for water. That’s not just inconvenient; it’s a crisis. By checking the visits table, I found several sources with extreme wait times.
Connecting the Dots
To understand what kind of sources were causing these long waits, I matched source_id from the visits table with the water_source table. This revealed that broken taps and polluted wells were often behind the delays.
Spotting Data Mistakes
One of the most interesting parts of the project was checking the water_quality table. I wrote a query to find home taps with a perfect score of 10 that were visited more than once. That shouldn’t happen because home taps are supposed to be reliable. But I found 218 records that broke that rule. It was a reminder that even clean data can hide mistakes.
Cleaning Up Pollution Records
The final challenge was in the well_pollution table. I found records marked as “Clean” even though the biological contamination was above safe levels. That’s dangerous. I also spotted descriptions like “Clean Bacteria: E. coli” that needed to be corrected.
Get Tech with Thelma’s stories in your inbox
Join Medium for free to get updates from this writer.
Instead of updating the original table directly, I created a copy and tested my fixes there. This safe-update approach gave me confidence that I wasn’t introducing new errors.
Wrapping Up
This first part of the Maji Ndogo project taught me more than just SQL. It showed me how to think critically about data, how to spot inconsistencies, and how to fix them responsibly. The chat-style instructions made it feel like I was working alongside a mentor, not just following a checklist.
And now that the cleaned data is ready, I’m excited to move on to the next phase, turning these insights into action.







