I have found Common Table Expressions -- which are slightly easier for the developer to re-order in the query -- to be even more readable than subqueries.
1) The flow is clearer: take this, then transform this, then filter this
2) CTEs makes it easy to debug parts. You just change what you select from on the last line.
Number 2 is the kicker IMO
We use a LOT of SQL at $current_dayjob and I almost always end up adding this to the queries. Clearly I need to do a better job of evangelising my approach.