> You can create a library of > reusable views that are small, easy-to-understand and readable. Then > you build them up into bigger views, and finally query from them. But > then you end up with lots of (hidden) self-joins.
I will concur with this use case being pretty common, but also something I have actively avoided anywhere performance is important because of the lack of this optimization. Even still, I have 20+ views like that in my database.