Я играюсь с jOOQ и вложенными запросами. У меня есть полезная нагрузка JSON, которая может содержать множество подзапросов. Я хочу рассматривать эти подзапросы как переменное количество общих табличных выражений (т.е. CTE в предложении WITH). В настоящее время у меня есть этот рабочий пример, но он равен c по количеству включенных в него CTE. Как мне выполнить sh переменное количество CTE в предложении WITH? Перед выбором окончательного результата необходимо проверить, поддерживает ли jOOQ
ссылку на один CTE в другом CTE. Мне нужно будет выполнить sh что-то вроде этого:
/*
+-----------------+
|sum_of_everything|
+-----------------+
| 100|
+-----------------+
*/
Supplier<Stream<Map<String, Object>>> resultsWith =
() ->
dslContext
.with("s1").as(query1)
.with("s2").as(query2) // should be able to reference "s1" i.e. query1
...
.with("sNMinus1").as(queryNMinus1)
.with("sN").as(queryN) // should be able to reference any upstream CTE
.select(sum(field("1", Integer.class)).as("sum_of_everything"))
.from(table(name("sN")))
.fetchStream()
.map(Record::intoMap);