问题描述
我需要按日期对字段进行分组,我使用prisma 2,例如,过滤所有月份的寄存器,但我不知道在日期的情况下如何进行
Eu preciso agrupar os campos com um intervalo de data,por exemplo todos os registros dentro de um mês!
按正常字段过滤的示例
await this.record.groupBy({
by: ['category'],where: {
AND: [
{ user: id },{ account: { in: accountsIds } },{ category: { in: categoriesIds } },{ operation },],},sum: {
amount: true,});
这还给我:
{ category: 27,sum: { amount: -45 } },{ category: 29,sum: { amount: 4400 } }
感谢您的帮助!
desde já agradeço qualquer ajudar!
解决方法
使用 Prisma 执行此操作绝对是困难的方法,即使可能。 Prisma 背后有一个数据库,它更适合这样的工作。对于示例,假设这是 postgresql。
对于特定问题,创建一个视图,例如
CREATE VIEW record_by_month AS
SELECT date_trunc('month',YOURDATE) month,sum(amount) amount_by_month FROM YOURTABLE group by 1;
您必须添加您需要的其他字段。创建prisma模型,编写prisma查询,大功告成。
更多 prismaish 方式,也许值得一试,(特别是如果您将为此模型编写许多不同的月份组查询,如上所示)来仅为特定日期创建视图:
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]
的内容(不确定在当前版本中是否可行)。这种方法的明显优势(如果有效)是您不必复制模型的太多部分。