Vous êtes sur la page 1sur 4

AFFECTATION

Étude de cas -1 : Analyse des opérations

- Points à prendre en considération :


o Quelle est la signification de l'événement ? Quels sont les éléments à
prendre en compte pour la révision ?
o Le candidat doit prendre le temps de comprendre le tableau.

QA: Calculez le nombre de travaux examinés par heure et par jour pour le mois de
novembre 2020 ? QB: Disons que la mesure ci-dessus est appelée débit. Calculer la
moyenne mobile sur 7 jours du débit ? Pour le débit, préférez-vous une mesure
journalière ou une mesure glissante sur 7 jours et pourquoi ?
QC: Calculez la part en pourcentage de chaque langue au cours des 30 derniers
jours ?
QD: Supposons que vous trouviez des lignes en double dans les données.
Comment afficherez-vous les doublons du tableau ?

AQ.
SELECTIONNER ds,
ROUND(1.0*COUNT(job_id)*3600/SUM(time_spent),2) AS throughput FROM
job_data WHERE event IN ('transfer', 'decision')
AND ds BETWEEN '2020-11-01- AND -2020-11-30' GROUP BY ds

QB.
WITH CTE AS ( SELECT ds, COUNT(job_id) AS num_jobs, SUM(time_spent) AS
total_time FROM job_data WHERE event IN('transfer ;,'decision')
AND ds BETWEEN '2020-11-01' AND '2020-11-30' GROUP BY ds ) SELECT ds,
ROUND(1.0*

SUM(num_jobs) OVER (ORDER BY ds ROWS BETWEEN 6 PRECEDING AND CURRENT


ROW) / SUM(total_time) OVER (ORDER BY ds ROWS BETWEEN 6 PRECEDING AND
CURRENT ROW),2) AS throughput_7d FROM CTE

QC.
WITH CTE AS ( SELECT Language, COUNT(job_id) AS num_jobs FROM job_data
WHERE event IN('transfer', 'decision') AND ds BETWEEN '2020-11-01' AND
'2020-11-30' GROUP BY language ), total AS ( SELECT COUNT(job_id) AS
total_jobs FROM job_data WHERE event IN('transfer', 'decision') AND ds
BETWEEN '2020-11-01' AND '2020-11-30' GROUP BY language ) SELECT
langue,
ROUND(100.0*num_jobs/total_jobs,2) AS perc_jobs FROM CTE CROSS OIN
total ORDER BY perc_job DESC
QD.
WITH CTE AS ( SELECT *,
ROW_NUMBER() OVER (PARTITION BY ds, job_id, actor_id) AS rownum FROM
job_data

DELETE
DE
CTE
WHERE rownum > 1

Étude de cas - 2 : Enquête sur un pic métrique


QA : Calculer l'engagement hebdomadaire des utilisateurs ?
QB : Calculer la croissance du nombre d'utilisateurs d'un produit ?
QC : Calculez la rétention hebdomadaire des utilisateurs - cohorte d'inscription ?
QD : Calculer l'engagement hebdomadaire par appareil ?
QE : Calculer les indicateurs d'engagement des courriels ?

AQ.
SELECT DATE_TRUNC('week', e.occurred_at),
COUNT(DISTINCT e.user_id) AS weekly_active_users FROM events e
WHERE e.event_type = 'engagement'
AND e.event_name = 'login'
GROUPE PAR 1
ORDER BY 1

QB.
SELECT DATE_TRUNC('day', created_at) AS day,
COUNT(*) AS all_users,
COUNT(CASE WHEN activated_at IS NOT NULL THEN u.user_id ELSE
NULL END) AS activated_users
DES utilisateurs u
WHERE created_at >= ‘2021-04-01’
AND created_at < ‘2021-04-30’
GROUPE PAR 1
ORDER BY 1

QC.
SELECT DATE_TRUNC('week', z.occurred_at) AS "week",
AVG(z.age_at_event) AS "Average age durig week",
COUNT(DISTINCT CASE WHEN z.user_age > 70 THEN z.user_id ELSE NULL END)
AS "10+ weeks",
COUNT(DISTINCT CASE WHEN z.âge_utilisateur < 70 ET
z.âge_utilisateur >=63
THEN z.user_id ELSE NULL END) AS '9 weeks',
COUNT(DISTINCT CASE WHEN z.âge_utilisateur < 63 ET
z.âge_utilisateur >=56
THEN z.user_id ELSE NULL END) AS '8 semaines"
COUNT(DISTINCT CASE QUAN z.âge_util , < 56 z.âge_util >=49
THEN z.user_id ELSE D isateur
END) AS '7 ET isateur
NULL semaines"
QUAN z.âge_util < 49 ET
COUNT(DISTINCT CASE z.âge_util >=42
D isateur semaines"
THEN z.user_id ELSE isateur
NULL END) AS '6 ,
QUAN z.âge_util < 42 ET
COUNT(DISTINCT CASE z.âge_util >=35
D isateur semaines"
THEN z.user_id ELSE isateur
NULL END) AS '5 ,
QUAN z.âge_util < 35 ET
COUNT(DISTINCT CASE z.âge_util >=28
D isateur semaines"
THEN z.user_id ELSE isateur
NULL END) AS '4 ,
QUAN z.âge_util < 28 ET
COUNT(DISTINCT CASE z.âge_util >=21
D isateur semaines"
THEN z.user_id ELSE isateur
NULL END) AS '3 ,
QUAN z.âge_util < 21 ET
COUNT(DISTINCT CASE z.âge_util >=14
D isateur semaines"
THEN z.user_id ELSE isateur
NULL END) AS '2 ,
QUAN z.âge_util < 14 ET
COUNT(DISTINCT CASE z.âge_util >=7
D isateur semaines"
THEN z.user_id ELSE isateur
NULL END) AS '1 ,
QUAN z.âge_util .user_age
COUNT(DISTINCT CASE < 7 ET z =63
D isateur >
THEN z.user_id ELSE NULL END) AS "Moins d'un semaine",
DE(
SELECT e.occurred_at, u.user_id, DATE_TRUNC("week",u.activated_at) AS
activation_week, EXTRACT('day' FROM e.occurred_at - u.activated_at) AS
age_at_event, EXTRACT('day' FROM '201-09-01'::TIMESTAMP -
u.activated_at) AS user_age
FROM tutorial.yammer_users u
JOIN tutorial.yammer_events e
ON e.user_id = u.user_id
ET e.event_type = engagement
ET e.evnetn_name= 'login' (connexion)
AND e.occurred_at >= ‘2014-05-01’
AND e.occurred_at < ‘2014-09-01’
WHERE u.activated_at IS NOT NULL ) z
GROUPE BY 1
ORDER BY 1
LIMITE 100

QD.
SELECT DATE_TRUNC('week', occurred_at) AS week, COUNT(DISTINCT e.user
id) AS weekly active users, COUNT(DISTINCT CASE WHEN e.device
IN('macbook pro', 'lenovo thinkpad', 'macbook air',''dell inspiron
notebook", "asus
chromebook', 'dell inspiron desktop', 'acer aspire notebook', 'hp
pavilion desktop', 'acer aspire desktop", "mac mini")
THEN e.user id ELSE NULL END) AS computer,
COUNT(DISTINCT CASE WHEN e.device IN('iphone 5", "samsung galaxy
s4", "nexus 5", "iphone 5s", "iphone 4s", "nokia lumia
635", "htc
one','samsung galaxy note','amazon fire phone') THEN e.user id ELSE
NULL END) AS phone,
COUNT(DISTINCT CASE WHEN e.device IN('ipad air', 'nexus 7', 'ipad
mini', 'nexus 10', 'kindle fire', 'windows surface", "samsung galaxy
AFFECTATION.............................................................................................................................1
AQ...............................................................................................................................................1
QB...............................................................................................................................................1
QC...............................................................................................................................................1
QD...............................................................................................................................................1
QD...............................................................................................................................................3

LIMITE 100

L'ASSOUPLISSEMENT QUANTITATIF.
SELECT DATE_TRUNC('week', occurred_at) AS week, COUNT(CASE QUAND
e.action = Envoyé hebdomadaire" ALORS e.l'identifiant
de l'utilisateur
ELSE NULL END) AS weekly emails, COUNT(CASE QUAND e.action
= Envoyé courriel de réengagement ALORS
e.user id ELSE NULL END) AS reengagement emails, COUNT(CASE QUAND
e.action = Courriel open" ALORS e.user
id ELSE
NULL END) AS email opens, COUNT(CASE QUAND e.action = Courriel
clickthrough' THEN e.user id
ELSE NULL END) AS clics sur les courriels
DES événements du courrier électronique e
GROUPE PAR 1

Vous aimerez peut-être aussi