diff --git a/dbt/models/monrecap/monrecap_marts/monrecap_starmetric.sql b/dbt/models/monrecap/monrecap_marts/monrecap_starmetric.sql new file mode 100644 index 00000000..42da4c2a --- /dev/null +++ b/dbt/models/monrecap/monrecap_marts/monrecap_starmetric.sql @@ -0,0 +1,8 @@ +select + {{ pilo_star(ref('stg_commandes_starmetric'),relation_alias="starm") }}, + rep.total_answers +from {{ ref('stg_starmetric') }} as starm +left join {{ ref('stg_total_reponses') }} as rep + on + extract(year from starm.derniere_reponse_barometre) = rep.annee + and extract(month from starm.derniere_reponse_barometre) = rep.mois diff --git a/dbt/models/monrecap/properties.yml b/dbt/models/monrecap/monrecap_marts/properties.yml similarity index 100% rename from dbt/models/monrecap/properties.yml rename to dbt/models/monrecap/monrecap_marts/properties.yml diff --git a/dbt/models/monrecap/monrecap_staging/properties.yml b/dbt/models/monrecap/monrecap_staging/properties.yml new file mode 100644 index 00000000..d02aa781 --- /dev/null +++ b/dbt/models/monrecap/monrecap_staging/properties.yml @@ -0,0 +1,21 @@ +version: 2 + +models: + - name: stg_commandes_starmetric + description: > + Vue créée afin de récupérer les colonnes de la table commandes nécessaires au calcul de la mesure d'impact de Mon Récap + - name: stg_barometre_starmetric + description: > + Vue créée afin de récupérer les colonnes de la table baromètre nécessaires au calcul de la mesure d'impact de Mon Récap + - name: stg_baro_commandes_starmetric + description: > + Vue créée afin de récupérer les colonnes de la table baromètre,commandes et contacts nécessaires au calcul de la mesure d'impact de Mon Récap + - name: stg_email_departement + description: > + Vue créée afin de récupérer les départements par utilisateurs de la table commandes + - name: stg_total_reponses + description: > + Vue créée afin de récupérer le total de réponses au baromètre par date + - name: stg_starmetric + description: > + Vue créée afin de créer l'indicateur d'impact de Mon Récap. Cette vue est jointe a la vue stg_total_reponses pour la création de l'indicateur final. diff --git a/dbt/models/monrecap/monrecap_staging/stg_baro_commandes_starmetric.sql b/dbt/models/monrecap/monrecap_staging/stg_baro_commandes_starmetric.sql new file mode 100644 index 00000000..df0af872 --- /dev/null +++ b/dbt/models/monrecap/monrecap_staging/stg_baro_commandes_starmetric.sql @@ -0,0 +1,13 @@ +select + {{ pilo_star(ref('stg_commandes_starmetric'),relation_alias="cmd") }}, + {{ pilo_star(ref('stg_barometre_starmetric'), relation_alias="baro") }}, + contacts."EMAIL" as email, + contacts."STRUCTURE" as structure, + contacts."Date de dernière réponse au baromètre"::DATE as date_de_derniere_reponse_au_barometre, + contacts."Date de dernière commande" as date_de_derniere_commande, + contacts."Date de première commande" as date_de_premiere_commande +from {{ ref('stg_commandes_starmetric') }} as cmd +left join {{ ref('stg_barometre_starmetric') }} as baro + on cmd.email_commande = baro.votre_adresse_mail +left join {{ source('monrecap', 'Contacts') }} as contacts + on cmd.email_commande = contacts."EMAIL" diff --git a/dbt/models/monrecap/monrecap_staging/stg_barometre_starmetric.sql b/dbt/models/monrecap/monrecap_staging/stg_barometre_starmetric.sql new file mode 100644 index 00000000..a36a17de --- /dev/null +++ b/dbt/models/monrecap/monrecap_staging/stg_barometre_starmetric.sql @@ -0,0 +1,13 @@ +select + "Combien de carnets avez-vous distribués depuis le début de vo" as combien_de_carnets_distribues, + "Parmi ces usagers, combien d'usagers ont perdu le carnet ou ne " as combien_dusagers_ont_perdu_le_carnet, + "Avez-vous constaté une amélioration dans le parcours de vos u" as amelioration_avec_mon_recap, + max("Submitted at"::DATE) as derniere_reponse_barometre, + coalesce("email", "Votre adresse mail ?") as votre_adresse_mail +from {{ source('monrecap', 'barometre') }} +group by + "Combien de carnets avez-vous distribués depuis le début de vo", + "Parmi ces usagers, combien d'usagers ont perdu le carnet ou ne ", + "Avez-vous constaté une amélioration dans le parcours de vos u", + "Votre adresse mail ?", + "email" diff --git a/dbt/models/monrecap/monrecap_staging/stg_commandes_starmetric.sql b/dbt/models/monrecap/monrecap_staging/stg_commandes_starmetric.sql new file mode 100644 index 00000000..b743dbd5 --- /dev/null +++ b/dbt/models/monrecap/monrecap_staging/stg_commandes_starmetric.sql @@ -0,0 +1,6 @@ +select + "Email" as email_commande, + sum("Nombre de Carnets") as nombre_total_carnets_commandes +from {{ source('monrecap', 'Commandes') }} +group by + "Email" diff --git a/dbt/models/monrecap/monrecap_staging/stg_email_departement.sql b/dbt/models/monrecap/monrecap_staging/stg_email_departement.sql new file mode 100644 index 00000000..d91d0bfa --- /dev/null +++ b/dbt/models/monrecap/monrecap_staging/stg_email_departement.sql @@ -0,0 +1,7 @@ +select + "Email" as email_commande, + "Nom Departement" as nom_departement +from {{ source('monrecap', 'Commandes') }} +group by + "Email", + "Nom Departement" diff --git a/dbt/models/monrecap/monrecap_staging/stg_starmetric.sql b/dbt/models/monrecap/monrecap_staging/stg_starmetric.sql new file mode 100644 index 00000000..c1c2f34f --- /dev/null +++ b/dbt/models/monrecap/monrecap_staging/stg_starmetric.sql @@ -0,0 +1,35 @@ +select + starm.derniere_reponse_barometre, + starm.date_de_derniere_reponse_au_barometre, + starm.email, + starm.email_commande, + starm.structure, + starm.date_de_premiere_commande, + starm.date_de_derniere_commande, + starm.nombre_total_carnets_commandes, + starm.combien_de_carnets_distribues, + starm.combien_dusagers_ont_perdu_le_carnet, + starm.amelioration_avec_mon_recap, + dpt.nom_departement, + 0.971 as taux_de_perte, + case + when starm.date_de_derniere_reponse_au_barometre is not null then 'Oui' + else 'Non' + end as reponse_barometre +from {{ ref('stg_baro_commandes_starmetric') }} as starm +left join {{ ref('stg_email_departement') }} as dpt + on starm.email_commande = dpt.email_commande +where (starm.date_de_derniere_reponse_au_barometre = starm.derniere_reponse_barometre or starm.derniere_reponse_barometre is null or starm.date_de_derniere_reponse_au_barometre is null) +group by + starm.derniere_reponse_barometre, + starm.date_de_derniere_reponse_au_barometre, + starm.email, + starm.email_commande, + starm.structure, + starm.date_de_premiere_commande, + starm.date_de_derniere_commande, + starm.nombre_total_carnets_commandes, + starm.combien_de_carnets_distribues, + starm.combien_dusagers_ont_perdu_le_carnet, + starm.amelioration_avec_mon_recap, + dpt.nom_departement diff --git a/dbt/models/monrecap/monrecap_staging/stg_total_reponses.sql b/dbt/models/monrecap/monrecap_staging/stg_total_reponses.sql new file mode 100644 index 00000000..7bab54e1 --- /dev/null +++ b/dbt/models/monrecap/monrecap_staging/stg_total_reponses.sql @@ -0,0 +1,8 @@ +select + extract(year from derniere_reponse_barometre) as annee, + extract(month from derniere_reponse_barometre) as mois, + count(*) as total_answers +from + {{ ref('stg_starmetric') }} +group by + annee, mois