Разница между использованием MATERIALIZED и NOT MATERIALIZED в предложении WITH заключается в том, как происходит вычисление подзапроса. 23
Использование MATERIALIZED принуждает вычислить подзапрос отдельно от родительского запроса. 3 Это может быть полезно, если подзапрос содержит ресурсозатратные вычисления. 3
Использование NOT MATERIALIZED принуждает свернуть подзапрос в родительский запрос. 2 В таком случае возникает риск многократного вычисления подзапроса, но это может быть выгодно, если в каждом случае использования подзапроса из всего результата запроса остаётся только небольшая часть. 2
Таким образом, выбор между этими параметрами зависит от конкретных условий и целей разработки.