首页 > 解决方案 > Prisma - 总和 - 超过 350'000 行

问题描述

我有一个发票模型,例如:

type Invoice {
  id
  amount
}

我有 350,000 张发票。我如何汇总所有发票的金额。(最大限制为 1000)

这个黑客不能工作:https ://www.prisma.io/forum/t/query-all-size-limit/557 ,因为我有太多行。

相关问题:https ://github.com/prisma/prisma/issues/2162 https://github.com/prisma/prisma/issues/259 https://www.prisma.io/forum/t/query-all -size-limit/557 https://www.prisma.io/forum/t/sun-amount-more-than-350000-rows/7611

标签: sumgraphqlprisma

解决方案


您可以使用自定义 SQL 查询在 Prisma 中构建自定义解析器,该查询将为您求和;

示例实现可能类似于:

const client = new Client({
  database: "prisma",
  user: "...",
  password: "...",
  host: "localhost",
  port: 3000
})

const resolvers = {
  Query: {
    async sumInvoices(parent, args, context, info){
      const response = await client.query(
        `SELECT SUM(amount) FROM Invoice WHERE YOUR_CONDITION`
      );
      return response;
    };
};

您也可以查看 Ben Awad 的视频以获取更多示例:https ://www.youtube.com/watch?time_continue=12&v=YUjlBuI8xsU


推荐阅读