https://boringsql.com/posts/good-cte-bad-cte/