From 54926cf7b1528544e05ed7dc596b734c7986b2bc Mon Sep 17 00:00:00 2001 From: Henri Ruoho Date: Wed, 3 Jan 2024 15:51:59 +0200 Subject: [PATCH] Korjaus: aggregoi kielet yhdeksi tietueeksi --- .../PerusopetuksenOppijamaaristaRaportoiva.scala | 11 +++-------- ...enOppijam\303\244\303\244r\303\244tRaportti.scala" | 8 ++++---- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/main/scala/fi/oph/koski/raportit/perusopetus/PerusopetuksenOppijamaaristaRaportoiva.scala b/src/main/scala/fi/oph/koski/raportit/perusopetus/PerusopetuksenOppijamaaristaRaportoiva.scala index ce8284aa62a..e80391e7df2 100644 --- a/src/main/scala/fi/oph/koski/raportit/perusopetus/PerusopetuksenOppijamaaristaRaportoiva.scala +++ b/src/main/scala/fi/oph/koski/raportit/perusopetus/PerusopetuksenOppijamaaristaRaportoiva.scala @@ -21,15 +21,10 @@ trait PerusopetuksenOppijamääristäRaportoiva extends QueryMethods { join r_henkilo on r_henkilo.oppija_oid = oo.oppija_oid join r_paatason_suoritus pts on pts.opiskeluoikeus_oid = oo.opiskeluoikeus_oid join r_opiskeluoikeus_aikajakso aikajakso on aikajakso.opiskeluoikeus_oid = oo.opiskeluoikeus_oid - left join ( - select *, row_number() over (partition by organisaatio_oid order by kielikoodi) as row_num - from r_organisaatio_kieli - ) as org_kieli_unique -- r_organisaatio_kieli yksikäsitteisellä kielikoodilla per organisaatio_oid - on org_kieli_unique.organisaatio_oid = oh.oppilaitos_oid - and row_num = 1 + left join r_organisaatio_kieli on r_organisaatio_kieli.organisaatio_oid = oh.oppilaitos_oid left join r_koodisto_koodi opetuskieli_koodisto - on opetuskieli_koodisto.koodisto_uri = split_part(org_kieli_unique.kielikoodi, '_', 1) - and opetuskieli_koodisto.koodiarvo = split_part(split_part(org_kieli_unique.kielikoodi, '_', 2), '#', 1) + on opetuskieli_koodisto.koodisto_uri = split_part(r_organisaatio_kieli.kielikoodi, '_', 1) + and opetuskieli_koodisto.koodiarvo = split_part(split_part(r_organisaatio_kieli.kielikoodi, '_', 2), '#', 1) where oh.oppilaitos_oid = any(${oppilaitosOids}) and oh.alku <= $date and oh.loppu >= $date diff --git "a/src/main/scala/fi/oph/koski/raportit/perusopetus/PerusopetuksenOppijam\303\244\303\244r\303\244tRaportti.scala" "b/src/main/scala/fi/oph/koski/raportit/perusopetus/PerusopetuksenOppijam\303\244\303\244r\303\244tRaportti.scala" index a62786082c1..8a64cb01eb2 100644 --- "a/src/main/scala/fi/oph/koski/raportit/perusopetus/PerusopetuksenOppijam\303\244\303\244r\303\244tRaportti.scala" +++ "b/src/main/scala/fi/oph/koski/raportit/perusopetus/PerusopetuksenOppijam\303\244\303\244r\303\244tRaportti.scala" @@ -53,7 +53,7 @@ Some(sql""" select oppilaitos.#$nimiSarake as oppilaitos_nimi, oh.oppilaitos_oid, - opetuskieli_koodisto.#$nimiSarake as opetuskieli, + string_agg(distinct opetuskieli_koodisto.#$nimiSarake, ', ') as opetuskieli, pts.koulutusmoduuli_koodiarvo as vuosiluokka, count(distinct (case when not kotiopetus then oo.opiskeluoikeus_oid end)) as oppilaita, count(distinct (case when not kotiopetus and r_henkilo.aidinkieli not in ('fi', 'sv', 'se', 'ri', 'vk') then oo.opiskeluoikeus_oid end)) as vieraskielisiä, @@ -74,14 +74,14 @@ Some(sql""" """), fromJoinWhereSqlPart(oppilaitosOids, date), Some(sql""" - group by oppilaitos.#$nimiSarake, oh.oppilaitos_oid, opetuskieli_koodisto.#$nimiSarake, pts.koulutusmoduuli_koodiarvo + group by oppilaitos.#$nimiSarake, oh.oppilaitos_oid, pts.koulutusmoduuli_koodiarvo ), totals as ( select * from q union all select oppilaitos_nimi, oppilaitos_oid, - opetuskieli, + string_agg(distinct opetuskieli, ', ') as opetuskieli, $kaikkiVuosiluokatLokalisoituTeksti as vuosiluokka, sum(oppilaita), sum(vieraskielisiä), @@ -96,7 +96,7 @@ Some(sql""" sum(joustava_perusopetus), sum(kotiopetus) from q - group by oppilaitos_nimi, oppilaitos_oid, opetuskieli + group by oppilaitos_nimi, oppilaitos_oid ) select * from totals order by oppilaitos_nimi, oppilaitos_oid, vuosiluokka