Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions dbt_/models/intermediate/int__union_resultats_udi.sql
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,21 @@ FROM
{{ ref('int__resultats_nitrate_udi_dernier') }}
UNION ALL
-- pesticide/metabolite
SELECT
cdreseau,
periode,
categorie,
resultat,
null AS ratio,
dernier_prel_datetime,
dernier_prel_valeur,
nb_parametres,
null AS nb_prelevements,
null AS nb_sup_valeur_sanitaire
FROM
{{ ref('int__resultats_metabolite_udi_dernier') }}
UNION ALL
-- pesticide/metabolite_specifique
SELECT
cdreseau,
periode,
Expand All @@ -73,6 +88,36 @@ SELECT
FROM
{{ ref('int__resultats_metabolite_specifique_udi_dernier') }}
UNION ALL
-- pesticide/sub_active
SELECT
cdreseau,
periode,
categorie,
resultat,
null AS ratio,
dernier_prel_datetime,
dernier_prel_valeur,
nb_parametres,
null AS nb_prelevements,
null AS nb_sup_valeur_sanitaire
FROM
{{ ref('int__resultats_sub_active_udi_dernier') }}
UNION ALL
-- pesticide
SELECT
cdreseau,
periode,
categorie,
resultat,
null AS ratio,
dernier_prel_datetime,
dernier_prel_valeur,
nb_parametres,
null AS nb_prelevements,
null AS nb_sup_valeur_sanitaire
FROM
{{ ref('int__resultats_pesticide_udi_dernier') }}
UNION ALL
-- pfas
SELECT
cdreseau,
Expand Down
49 changes: 49 additions & 0 deletions dbt_/models/intermediate/pesticide/_int__pesticide_models.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
models:
- name: int__resultats_pesticide_udi_dernier
description: Résultats des pesticides par UDI pour la temporalité 'derniers prélèvements'
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- cdreseau
- categorie
columns:
- name: cdreseau
description: "Code de l'installation (UDI)."
type: VARCHAR
tests:
- not_null
- name: categorie
description: "Catégorie du paramètre analysé (ici, toujours 'pesticide')."
type: VARCHAR
tests:
- accepted_values:
values:
- "pesticide"
- name: periode
description: "Période d'analyse des prélèvements (ici, toujours 'dernier_prel')."
type: VARCHAR
tests:
- accepted_values:
values: ["dernier_prel"]
- name: dernier_prel_datetime
description: "Date et heure du dernier prélèvement pris en compte dans l'analyse."
type: TIMESTAMP
tests:
- not_null
- dbt_utils.expression_is_true:
expression: ">= CURRENT_DATE - INTERVAL 1 YEAR"
- name: dernier_prel_valeur
description: "Valeur maximale du dernier prélèvement"
type: FLOAT
- name: nb_parametres
type: INTEGER
- name: resultat
description: "Interprétation du résultat en fonction des seuils sanitaires et des valeurs mesurées."
type: VARCHAR
tests:
- accepted_values:
values:
- "non_quantifie"
- "inf_limite_qualite"
- "sup_limite_qualite"
- "sup_valeur_sanitaire"
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
WITH
last_pvl AS (
SELECT DISTINCT
cdreseau,
categorie,
cdparametresiseeaux,
valtraduite,
limite_qualite,
valeur_sanitaire_1,
datetimeprel,
DENSE_RANK()
OVER (
PARTITION BY cdreseau
ORDER BY datetimeprel DESC
)
AS row_number

FROM
{{ ref('int__resultats_udi_communes') }}
WHERE
categorie = 'pesticide'
AND
-- On exclut le paramètre PESTOT qui est un TOTAL DES PESTICIDES ANALYSÉS
cdparametresiseeaux != 'PESTOT'
AND
-- On garde les prélèvements de moins d'un an
CURRENT_DATE - datetimeprel < INTERVAL 1 YEAR
)

SELECT
cdreseau,
'pesticide' AS categorie,
'dernier_prel' AS periode,
MAX(datetimeprel) AS dernier_prel_datetime,
MAX(valtraduite) AS dernier_prel_valeur,
COUNT(DISTINCT cdparametresiseeaux) AS nb_parametres,
CASE
WHEN BOOL_AND(valtraduite IS NULL OR valtraduite = 0) THEN 'non_quantifie'
WHEN
BOOL_OR(valtraduite IS NOT NULL AND valtraduite >= valeur_sanitaire_1)
THEN 'sup_valeur_sanitaire'
WHEN
BOOL_OR(valtraduite IS NOT NULL AND valtraduite >= limite_qualite)
THEN 'sup_limite_qualite'
WHEN
BOOL_OR(valtraduite IS NOT NULL AND valtraduite < limite_qualite)
THEN 'inf_limite_qualite'
ELSE 'erreur'
END AS resultat

FROM last_pvl
WHERE row_number = 1
GROUP BY cdreseau
Original file line number Diff line number Diff line change
@@ -1,60 +1,6 @@
models:
- name: int__resultats_metabolite_specifique_commune_dernier
description: Résultats des métabolites de pesticides spécifiques par commune pour la temporalité 'derniers prélèvements'
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- inseecommune
- categorie
columns:
- name: inseecommune
description: "Code INSEE de la commune"
type: VARCHAR
tests:
- not_null
- name: categorie
description: "Catégorie du métabolite analysé."
type: VARCHAR
tests:
- accepted_values:
values:
- "metabolite_esa_metolachlore"
- "metabolite_chlorothalonil_r471811"
- "metabolite_chloridazone_desphenyl"
- "metabolite_chloridazone_methyl_desphenyl"
- "metabolite_atrazine_desethyl"
- name: periode
description: "Période d'analyse des prélèvements (ici, toujours 'dernier_prel')."
type: VARCHAR
tests:
- accepted_values:
values: ["dernier_prel"]
- name: dernier_prel_datetime
description: "Date et heure du dernier prélèvement pris en compte dans l'analyse."
type: TIMESTAMP
tests:
- not_null
- dbt_utils.expression_is_true:
expression: ">= CURRENT_DATE - INTERVAL 1 YEAR"
- name: dernier_prel_valeur
description: "Valeur du dernier prélèvement"
type: FLOAT
- name: nb_parametres
type: INTEGER
- name: resultat
description: "Interprétation du résultat en fonction des seuils sanitaires et des valeurs mesurées."
type: VARCHAR
tests:
- accepted_values:
values:
- "non_quantifie"
- "inf_limite_qualite"
- "sup_limite_qualite"
- "inf_limite_qualite_sup_0_1"
- "sup_valeur_sanitaire"

- name: int__resultats_metabolite_specifique_udi_dernier
description: Résultats des métabolites de pesticides spécifiques par UDI pour la temporalité 'derniers prélèvements'
- name: int__resultats_metabolite_udi_dernier
description: Résultats des métabolites de pesticides par UDI pour la temporalité 'derniers prélèvements'
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
Expand All @@ -67,16 +13,12 @@ models:
tests:
- not_null
- name: categorie
description: "Catégorie du métabolite analysé."
description: "Catégorie du paramètre analysé (ici, toujours 'metabolite')."
type: VARCHAR
tests:
- accepted_values:
values:
- "metabolite_esa_metolachlore"
- "metabolite_chlorothalonil_r471811"
- "metabolite_chloridazone_desphenyl"
- "metabolite_chloridazone_methyl_desphenyl"
- "metabolite_atrazine_desethyl"
- "metabolite"
- name: periode
description: "Période d'analyse des prélèvements (ici, toujours 'dernier_prel')."
type: VARCHAR
Expand All @@ -91,7 +33,7 @@ models:
- dbt_utils.expression_is_true:
expression: ">= CURRENT_DATE - INTERVAL 1 YEAR"
- name: dernier_prel_valeur
description: "Valeur du dernier prélèvement"
description: "Valeur maximale du dernier prélèvement"
type: FLOAT
- name: nb_parametres
type: INTEGER
Expand All @@ -104,5 +46,4 @@ models:
- "non_quantifie"
- "inf_limite_qualite"
- "sup_limite_qualite"
- "inf_limite_qualite_sup_0_1"
- "sup_valeur_sanitaire"
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
WITH
last_pvl AS (
SELECT DISTINCT
cdreseau,
categorie,
cdparametresiseeaux,
valtraduite,
limite_qualite,
valeur_sanitaire_1,
datetimeprel,
DENSE_RANK()
OVER (
PARTITION BY cdreseau
ORDER BY datetimeprel DESC
)
AS row_number

FROM
{{ ref('int__resultats_udi_communes') }}
WHERE
categorie = 'pesticide'
AND
categorie_2 = 'metabolite'
AND
-- On garde les prélèvements de moins d'un an
CURRENT_DATE - datetimeprel < INTERVAL 1 YEAR
)

SELECT
cdreseau,
'metabolite' AS categorie,
'dernier_prel' AS periode,
MAX(datetimeprel) AS dernier_prel_datetime,
MAX(valtraduite) AS dernier_prel_valeur,
COUNT(DISTINCT cdparametresiseeaux) AS nb_parametres,
CASE
WHEN BOOL_AND(valtraduite IS NULL OR valtraduite = 0) THEN 'non_quantifie'
WHEN
BOOL_OR(valtraduite IS NOT NULL AND valtraduite >= valeur_sanitaire_1)
THEN 'sup_valeur_sanitaire'
WHEN
BOOL_OR(valtraduite IS NOT NULL AND valtraduite >= limite_qualite)
THEN 'sup_limite_qualite'
WHEN
BOOL_OR(valtraduite IS NOT NULL AND valtraduite < limite_qualite)
THEN 'inf_limite_qualite'
ELSE 'erreur'
END AS resultat

FROM last_pvl
WHERE row_number = 1
GROUP BY cdreseau
Loading
Loading