-- # -- Les spécialistes du marketing lancent des campagnes promotionnelles dans l'application du service. Il y a deux tables:
-- # -- campaigns - liste des campagnes
-- # -- - campaign - nom de la campagne
-- # -- - action_type - type de campagne : "push" ou "banner"
-- # -- communications - journal du backend avec l'envoi des 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 |
-- # -- | promo_cats | banner | <- dupliqué aléatoirement
-- # -- | promo_cats | banner | <- deux lignes
-- # -- | promo_rats | push |
# # -- De plus, il est 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,
-- # -- tandis que 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
-- # -- 1.2 Comment la réponse changera-t-elle si le type de JOIN est changé en LEFT?
-- # -- 1.3 Indiquez l'ordre d'exécution des opérateurs dans cette requête.
-- Réponse:
promo_dogs ... ...