From a7b239bb517050ee8443cfc8070c859e10a54e35 Mon Sep 17 00:00:00 2001 From: erlingjd <16976922+erlingjd@users.noreply.github.com> Date: Tue, 20 Feb 2024 10:45:23 +0100 Subject: [PATCH] =?UTF-8?q?Effektiviserer=20SQL-sp=C3=B8rring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../soknad/db/db/S\303\270knadStore.kt" | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git "a/src/main/kotlin/no/nav/hjelpemidler/soknad/db/db/S\303\270knadStore.kt" "b/src/main/kotlin/no/nav/hjelpemidler/soknad/db/db/S\303\270knadStore.kt" index 6f86530b..1ffc8332 100644 --- "a/src/main/kotlin/no/nav/hjelpemidler/soknad/db/db/S\303\270knadStore.kt" +++ "b/src/main/kotlin/no/nav/hjelpemidler/soknad/db/db/S\303\270knadStore.kt" @@ -617,14 +617,22 @@ internal class SøknadStorePostgres(private val ds: DataSource) : SøknadStore { override fun hentGodkjenteSoknaderUtenOppgaveEldreEnn(dager: Int): List { @Language("PostgreSQL") val statement = """ + WITH soknader_med_siste_status_godkjent AS ( + SELECT * + FROM (SELECT soknads_id, + status, + RANK() OVER (PARTITION BY soknads_id ORDER BY created DESC) AS rangering + FROM V1_STATUS + WHERE created > NOW() - INTERVAL '90 DAYS') AS t + WHERE rangering = 1 + AND STATUS IN (?, ?, ?) + ) + SELECT soknad.soknads_id FROM V1_SOKNAD AS soknad - LEFT JOIN V1_STATUS AS status - ON status.ID = ( - SELECT ID FROM V1_STATUS WHERE SOKNADS_ID = soknad.SOKNADS_ID ORDER BY created DESC LIMIT 1 - ) - WHERE status.STATUS IN (?, ?, ?) - AND soknad.oppgaveid IS NULL + INNER JOIN soknader_med_siste_status_godkjent + ON soknad.soknads_id = soknader_med_siste_status_godkjent.soknads_id + WHERE soknad.oppgaveid IS NULL AND soknad.CREATED < now() - INTERVAL '$dager DAYS' -- Buffer for saksbehanling etc. AND soknad.created > now() - INTERVAL '90 DAYS' -- OPPGAVEID kolonnen ble lagt til 2021-04-12. Alt før dette har OPPGAVEID == NULL """