diff --git a/graphql/statistics/fields.ts b/graphql/statistics/fields.ts index 538733cbf..2d6d35605 100644 --- a/graphql/statistics/fields.ts +++ b/graphql/statistics/fields.ts @@ -216,6 +216,19 @@ export class StatisticsResolver { @FieldResolver((returns) => [ByMonth]) @Authorized(Role.ADMIN) + async registeredPupilsHavingScreening(@Root() statistics: Statistics) { + return await prisma.$queryRaw`SELECT COUNT(*)::INT AS value, + date_part('year', pupil."createdAt"::date) AS year, + date_part('month', pupil."createdAt"::date) AS month + FROM pupil + LEFT JOIN pupil_screening on pupil_screening."pupilId" = pupil.id + WHERE pupil."createdAt" > ${statistics.from}::timestamp + AND pupil."createdAt" < ${statistics.to}::timestamp + AND (pupil_screening."createdAt" IS NOT NULL) + GROUP BY "year", "month" + ORDER BY "year" ASC, "month" ASC`; + } + async pupilRegistrationsByScreeningStatus(@Root() statistics: Statistics) { return await prisma.$queryRaw`WITH first_screening AS ( SELECT DISTINCT ON ("pupilId")