Aggregate
The aggregate method allows you to conduct multiple aggregations on a set of records with one operation. The supported aggregations are:
- _count- equivalent to the Count API.
- _sum- sum of a numeric field.
- _avg- average of a numeric field.
- _min- minimum value of a field.
- _max- maximum value of a field.
You can also use where, orderBy, skip, and take to control what records are included in the aggregation.
Samples​
Click here to open an interactive playground.
aggregate.ts
import { createClient } from './db';
import { createUsersAndPosts } from './utils';
async function main() {
  const db = await createClient();
  await createUsersAndPosts(db);
  console.log(
    await db.post.aggregate({
      where: { published: false },
      // you can also use `count: true` to simply count all rows
      _count: { _all: true, content: true },
      _avg: { viewCount: true },
      _max: { viewCount: true },
    })
  );
}
main();