Grouping & Aggregates
tsql exposes aggregate helpers on db:
db.count(value?)db.max(expr)db.min(expr)db.avg(expr)db.sum(expr)
Grouped query example
const rows = await db
.from("posts")
.join("users", ({ posts, users }) => posts.authorId.eq(users.id, db.dialect))
.groupBy(({ users }) => [users.email])
.having(() => db.count().gt(5, db.dialect))
.select(({ posts, users }) => ({
email: users.email,
postCount: db.count(),
latestPostId: db.max(posts.id),
}))
.execute();
API
groupBy(predicate)appends expressions to thegroup bylist.having(predicate)appends predicates combined withand.- Aggregates return typed expressions (
Expr<number>or nullable numeric types, depending on function).