It's so easy to screw up your SQL, even when the dataset is seemingly straightforward. This article discusses two very common errors analysts make in their join logic, and they're ones you've almost definitely made yourself at some point.
While we're on the topic of common SQL errors, take a look at this article, from way back in 2009, on more ways you can screw up your queries.
This is why we built testing into dbt. If you assert things to be true about your data (not-null and unique fields, referential integrity, etc.), you can begin operating on your data with a high degree of confidence.