const cte = ctx.db.main.$with("cte").as(
ctx.db.main
.select({
year: MainTable.Year,
})
.from(MainTable)
);
// can't do this
const cteAlias = alias(cte, "parent");
return ctx.db.main
.with(cte)
.select({
prevYear: sql<number>`CAST(SUM(${cteAlias.year} - 1) AS numeric)`,
})
.from(cte)
.leftJoin(cteAlias, eq(cteAlias.id, cte.id));
const cte = ctx.db.main.$with("cte").as(
ctx.db.main
.select({
year: MainTable.Year,
})
.from(MainTable)
);
// can't do this
const cteAlias = alias(cte, "parent");
return ctx.db.main
.with(cte)
.select({
prevYear: sql<number>`CAST(SUM(${cteAlias.year} - 1) AS numeric)`,
})
.from(cte)
.leftJoin(cteAlias, eq(cteAlias.id, cte.id));