Вы можете использовать факторинг подзапроса для замены некоррелированного подзапроса.
Как, черт возьми, вы предлагаете сделать это для коррелированного подзапроса?
Я не понимаю, часть (б), вы можете перефразировать?
Предположим, что вы имеете в виду: подзапрос в предложении WITH обычно выполняется только один раз перед выполнением основного запроса.
Для больших наборов данных факторинг подзапроса, очевидно, лучше, так как вы выполняете подзапрос только в большинстве, если не во всех случаях. Для небольших наборов данных затраты на создание временных таблиц могут занять больше времени, чем фактический запрос.
Помимо проблем производительности, упомянутых выше, факторинг подзапросов приводит к гораздо более чистому и легкому в обслуживании коду.