For pejlinger udtrækkes nyeste pejling for hvert indtag med tilhørende statistik.
SELECT
ROW_NUMBER() OVER (ORDER BY 1) id,
-- Udfyld kun med anlæg hvis unikt
CASE WHEN COUNT(*) >1 THEN 'Knyttet til flere anlæg' ELSE MAX(anlaegsnavn) END anlaegs_navn,
CASE WHEN COUNT(*) = 1 THEN MAX(anl2.anlaegsnavn) END overanlaegs_navn,
CASE WHEN COUNT(*) = 1 THEN MAX(indtagsnr) END indtag_nr,
pej.borid,
pej.indtagsid,
CASE WHEN COUNT(*) = 1 THEN MAX(anlaegid) END anlaeg_id,
CASE WHEN COUNT(*) = 1 THEN MAX(virksomhedstype) END virksomhedstype_kode,
CASE WHEN COUNT(*) = 1 THEN MAX(vl.virksomhedstype1992) END virksomhedstype_tekst,
CASE WHEN COUNT(*) = 1 THEN MAX(kommunenr2007) END kommune_nr,
CASE WHEN COUNT(*) = 1 THEN MAX(k.kommunenavn) END kommune_navn,
CASE WHEN COUNT(*) = 1 THEN MAX(ial.lang_tekst ) END indtag_anvendelse_tekst,
-- TODO: Næste 4 cases skal rettes til mgau's akvitard beregning
CASE
WHEN MIN(bf.top) IS NULL AND MAX(bf.bund) IS NULL THEN MAX(boringsdybde)-2
WHEN MIN(bf.top) IS NULL THEN MAX(bf.bund) - 2
ELSE MIN(bf.top)
END indtag_top_dybde,
CASE
WHEN MIN(bf.top) IS NULL AND MAX(bf.bund) IS NULL THEN 'Boringdybde minus 2 m anvendt'
WHEN MIN(bf.top) IS NULL THEN 'Dybdebund minus 2 m. anvendt'
ELSE 'Dybdetop anvendt'
END indtag_top_dybde_forklaret,
CASE
WHEN MAX(bf.bund) IS NULL AND MIN(bf.top) IS NULL THEN MAX(boringsdybde)
WHEN MAX(bf.bund) IS NULL THEN MIN(bf.top) + 2
ELSE MAX(bf.bund)
END indtag_bund_dybde,
CASE
WHEN MAX(bf.bund) IS NULL AND MIN(bf.top) IS NULL THEN 'Boringdybde anvendt'
WHEN MAX(bf.bund) IS NULL THEN 'Dybdetop plus 2 m. anvendt'
ELSE 'Dybdebund anvendt'
END indtag_bund_dybde_forklaret,
--(MONTHS_BETWEEN(dato_seneste, dato_foerste)/12)aar_pejleserie -- længden af pejletidsserie
CASE
WHEN (MONTHS_BETWEEN(dato_seneste, dato_foerste)/12) > 20 AND frkvns_5_aar >= 4 THEN 6
WHEN (MONTHS_BETWEEN(dato_seneste, dato_foerste)/12) > 20 THEN 4
WHEN (MONTHS_BETWEEN(dato_seneste, dato_foerste)/12) > 10 AND frkvns_5_aar >= 4 THEN 5
WHEN (MONTHS_BETWEEN(dato_seneste, dato_foerste)/12) > 10 THEN 3
WHEN (MONTHS_BETWEEN(dato_seneste, dato_foerste)/12) > 3 AND frkvns_5_aar >= 4 THEN 2
ELSE 1
END AS klassifikation,
antal_pejlinger,
dato_foerste,
kote_seneste,
dato_seneste,
(vandspejl_seneste) vsp_mtu_seneste, -- vandspejl meter under terræn
median_kote,
max_kote,
dato_max_kote,
min_kote,
dato_min_kote,
ROUND(stddev_kote, 3)stddev_kote,
(max_kote - min_kote) diff_max_min,
synkron,
'http://data.geus.dk/JupiterWWW/pejlinger.jsp?'||'borid='
|| pej.borid AS url_tidsserie,
CASE WHEN COUNT(*) = 1 THEN MAX(boringsdybde) END boringsdybde
FROM
(
-- Aggregering på pejlinger
SELECT DISTINCT
borid,
indtagsid,
FIRST_VALUE(vandstandkote)
OVER ( PARTITION BY borid, indtagsid ORDER BY pejletidspunkt DESC ) kote_seneste,
FIRST_VALUE(vandstandterraen)
OVER ( PARTITION BY borid, indtagsid ORDER BY pejletidspunkt DESC ) vandspejl_seneste,
FIRST_VALUE(pejletidspunkt)
OVER ( PARTITION BY borid, indtagsid ORDER BY vandstandkote DESC ) dato_max_kote,
FIRST_VALUE(pejletidspunkt)
OVER ( PARTITION BY borid, indtagsid ORDER BY vandstandkote ) dato_min_kote,
-- udfyldes hvis dette indtag har deltaget i synkronpejling (meget få forekomster)
MAX(pejlerundeid)
OVER ( PARTITION BY borid, indtagsid ) synkron,
COUNT(vandstand)
OVER ( PARTITION BY borid, indtagsid ) antal_pejlinger,
MEDIAN(vandstandkote)
OVER ( PARTITION BY borid, indtagsid ) median_kote,
MAX(vandstandkote)
OVER ( PARTITION BY borid, indtagsid ) max_kote,
MIN(vandstandkote)
OVER ( PARTITION BY borid, indtagsid ) min_kote,
STDDEV(vandstandkote)
OVER ( PARTITION BY borid, indtagsid ) stddev_kote,
MIN(pejletidspunkt)
OVER ( PARTITION BY borid, indtagsid ) dato_foerste,
MAX(pejletidspunkt)
OVER ( PARTITION BY borid, indtagsid ) dato_seneste,
-- Antal pejlinger de sidste 5 år divideret med 5
0.2 * SUM( CASE WHEN pejletidspunkt > ADD_MONTHS(SYSDATE,-5*12) THEN 1 ELSE 0 END )
OVER ( PARTITION BY borid, indtagsid ) frkvns_5_aar
FROM
mis.pej$pejling pej
) pej
INNER JOIN
mis.bor$indtag i ON i.borid = pej.borid AND i.indtagsid = pej.indtagsid
INNER JOIN
mis.bor$boring b ON b.borid = pej.borid
LEFT OUTER JOIN
mis.drv$indtag_anlaeg indanl ON indanl.borid = pej.borid AND indanl.indtagsid = pej.indtagsid
LEFT OUTER JOIN
mis.drv$anlaeg anl ON anl.anlaegid = indanl.anlaegid
LEFT OUTER JOIN
mis.drv$anlaeg anl2 ON anl2.anlaegid = anl.overanlaeg
LEFT OUTER JOIN
mis.bor$indtaganvend_liste ial ON ial.kode = indanl.indtagsanvendelse
LEFT OUTER JOIN
mis.gen$kommune2007 k ON k.kommunenr = anl.kommunenr2007
LEFT OUTER JOIN
mis.drv$virksomhedstype_liste vl ON vl.kode = anl.virksomhedstype
LEFT OUTER JOIN
mis.bor$filter bf ON bf.borid = pej.borid AND bf.indtagsid = pej.indtagsid
WHERE
b.xutm32euref89 <> 0
GROUP BY
pej.borid,
pej.indtagsid,
pej.kote_seneste,
pej.vandspejl_seneste,
pej.dato_max_kote,
pej.dato_min_kote,
pej.synkron,
pej.antal_pejlinger,
pej.median_kote,
pej.max_kote,
pej.min_kote,
pej.stddev_kote,
pej.dato_foerste,
pej.dato_seneste,
pej.frkvns_5_aar;
GEUS - Øster Voldgade 10 - 1350 København K - Siden vedligeholdes af bpj@geus.dk