SET application_name = "COREG - statistiques 2/4";

-- insertion des nouvelles lignes dans la table finale de stats 
insert into coregistration.statistiques_coregistration (
        statistiques_coregistration_identifiant,
        statistiques_coregistration_date_reception,
        statistiques_coregistration_site,
        statistiques_coregistration_campagne_annonceur,
        statistiques_coregistration_campagne_affilie,
        statistiques_coregistration_eligible,
        statistiques_coregistration_cout_annonceur,
        statistiques_coregistration_remuneration_affilie,
        statistiques_coregistration_total,
        statistiques_coregistration_affichage
)

-- requete avec egilibilite connue (avec des leads donc)
select
        t.statistiques_coregistration_travail_identifiant as identifiant,
        t.statistiques_coregistration_travail_date_reception as date_reception,
        t.statistiques_coregistration_travail_site as site,
        t.statistiques_coregistration_travail_campagne_annonceur as campagne_annonceur,
        t.statistiques_coregistration_travail_campagne_affilie as campagne_affilie,
        t.statistiques_coregistration_travail_eligible as eligible,
        t.statistiques_coregistration_travail_cout_annonceur as cout_annonceur,
        t.statistiques_coregistration_travail_remuneration_affilie as remuneration_affilie,
        t.statistiques_coregistration_travail_total as total,
        --taff.statistiques_coregistration_affichage_travail_affichage as affichage
	case
                when row_number() over (partition by taff.statistiques_coregistration_affichage_travail_date_reception, taff.statistiques_coregistration_affichage_travail_site, statistiques_coregistration_affichage_travail_camp_annonceur, taff.statistiques_coregistration_affichage_travail_camp_affilie) = 1
                then taff.statistiques_coregistration_affichage_travail_affichage
                else 0
        end as affichage

from coregistration.statistiques_coregistration_travail as t
inner join coregistration.statistiques_coregistration_affichage_travail as taff
	on taff.statistiques_coregistration_affichage_travail_date_reception = t.statistiques_coregistration_travail_date_reception
        and taff.statistiques_coregistration_affichage_travail_site = t.statistiques_coregistration_travail_site
        and taff.statistiques_coregistration_affichage_travail_camp_annonceur = t.statistiques_coregistration_travail_campagne_annonceur
        and taff.statistiques_coregistration_affichage_travail_camp_affilie = t.statistiques_coregistration_travail_campagne_affilie
left outer join coregistration.statistiques_coregistration p
        on t.statistiques_coregistration_travail_identifiant = p.statistiques_coregistration_identifiant
where p.statistiques_coregistration_identifiant is null;




-- insertion des nouvelles lignes dans la table finale de stats 
insert into coregistration.statistiques_coregistration (
        statistiques_coregistration_identifiant,
        statistiques_coregistration_date_reception,
        statistiques_coregistration_site,
        statistiques_coregistration_campagne_annonceur,
        statistiques_coregistration_campagne_affilie,
        statistiques_coregistration_eligible,
        statistiques_coregistration_cout_annonceur,
        statistiques_coregistration_remuneration_affilie,
        statistiques_coregistration_total,
        statistiques_coregistration_affichage
)

-- requete sans egilibilite connue (avec uniquement des affichages)
select

	taff.statistiques_coregistration_affichage_travail_identifiant as identifiant,
        taff.statistiques_coregistration_affichage_travail_date_reception as date_reception,
        taff.statistiques_coregistration_affichage_travail_site as site,
        taff.statistiques_coregistration_affichage_travail_camp_annonceur as campagne_annonceur,
        taff.statistiques_coregistration_affichage_travail_camp_affilie as campagne_affilie,
        null as eligible,
        0 as cout_annonceur,
        0 as remuneration_affilie,
        0 as total,
        -- taff.statistiques_coregistration_affichage_travail_affichage as affichage
	case 
		when row_number() over (partition by taff.statistiques_coregistration_affichage_travail_date_reception, taff.statistiques_coregistration_affichage_travail_site, statistiques_coregistration_affichage_travail_camp_annonceur, taff.statistiques_coregistration_affichage_travail_camp_affilie) = 1 
		then taff.statistiques_coregistration_affichage_travail_affichage
		else 0 
	end as affichage

from coregistration.statistiques_coregistration_affichage_travail as taff
left outer join coregistration.statistiques_coregistration_travail as t
        on taff.statistiques_coregistration_affichage_travail_date_reception = t.statistiques_coregistration_travail_date_reception
        and taff.statistiques_coregistration_affichage_travail_site = t.statistiques_coregistration_travail_site
        and taff.statistiques_coregistration_affichage_travail_camp_annonceur = t.statistiques_coregistration_travail_campagne_annonceur
        and taff.statistiques_coregistration_affichage_travail_camp_affilie = t.statistiques_coregistration_travail_campagne_affilie
left outer join coregistration.statistiques_coregistration p
	on p.statistiques_coregistration_identifiant = taff.statistiques_coregistration_affichage_travail_identifiant
where p.statistiques_coregistration_identifiant is null
and t.statistiques_coregistration_travail_eligible is null;

