-- Les spécialistes du marketing lancent des campagnes promotionnelles dans l'application du service. Il y a deux tableaux:
-- campaigns – liste des campagnes
-- - campaign – nom de la campagne
-- - action_type – type de campagne : "push" ou "banner"
-- communications – journal du backend avec l'envoi de communications de ces campagnes aux utilisateurs
-- - user_id – identifiant de l'utilisateur
-- - campaign – nom de la campagne
-- - status – statut de l'événement : "success" ou "error"
---------------------------------------------------------------------------
-- 1. Initialement, dans la table campaigns, il y a 4 lignes:
-- | campaign | action_type |
-- |-------------|-------------|
-- | promo_dogs | push | <- dupliqué aléatoirement
-- | promo_cats | banner |
-- | promo_cats | banner | <- deux lignes
-- | promo_rats | push |
-- Il est également connu que :
-- les campagnes promo_dogs et promo_cats ont été menées avec succès sur 100 utilisateurs, et chaque utilisateur a reçu une communication,
-- et promo_rats est encore en planification.
-- 1.1 Que renverra la requête :
SELECT
campaign,
COUNT(*) as rows,
COUNT(DISTINCT co.user_id) AS users
FROM campaigns AS ca
INNER JOIN communications AS co
ON ca.campaign = co.campaign
GROUP BY ca.campaign AS campaign
-- 1.2 Comment la réponse changera-t-elle si le type de JOIN est changé en LEFT?