首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prisma2,groupBy日期

Prisma2,groupBy日期
EN

Stack Overflow用户
提问于 2021-05-15 20:11:14
回答 1查看 294关注 0票数 0

我需要按日期对字段进行分组,我使用Prisma 2,例如,在月份中过滤所有寄存器,但我不知道如何在日期的情况下做到这一点

您的位置:我也知道>地区/地区>地区/地区

按正常字段过滤的示例

代码语言:javascript
复制
await this.record.groupBy({
        by: ['category'],
        where: {
            AND: [
                { user: id },
                { account: { in: accountsIds } },
                { category: { in: categoriesIds } },
                { operation },
            ],
        },
        sum: {
            amount: true,
        },
    });

这给我带来了回报:

代码语言:javascript
复制
{ category: 27, sum: { amount: -45 } },  { category: 29, sum: { amount: 4400 } }

我非常感谢您的帮助!

欢迎光临!

EN

回答 1

Stack Overflow用户

发布于 2021-08-10 20:26:05

使用Prisma来做这件事肯定是很困难的,即使这是可能的。在Prisma后面有一个数据库,它更适合这样的工作。在本例中,假设这是postgresql。

对于特定的问题,创建一个视图,如

代码语言:javascript
复制
CREATE VIEW record_by_month AS
  SELECT date_trunc('month', YOURDATE) month,
  sum(amount) amount_by_month FROM YOURTABLE group by 1;

您必须添加您需要的其他字段。创建prisma模型,编写prisma查询,就完成了。

更简单的方法,也许值得一试(特别是如果你要为这个模型编写许多不同的查询,比如上面的月份分组),来创建一个只针对特定日期的视图:

代码语言:javascript
复制
CREATE VIEW record_by_month AS
  SELECT distinct YOURDATE id,
  date_trunc('month', YOURDATE) month FROM YOURTABLE;

创建一个模型,使用@relation将其添加到原始表中,摆弄groupBy和include,编写类似by: [record_by_month.month]的代码(不确定在当前版本中是否可行)。这种方法的明显优势(如果有效)是,您不必复制模型的太多部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67546591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档