-- 1.1 Cosa mostrerà la query:
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 Come cambierà la risposta se si cambia il tipo di JOIN in LEFT?
-- 1.3 Indicare l'ordine di esecuzione degli operatori in questa query.
-- 2. La tabella campaigns è stata corretta: sono stati rimossi i duplicati, aggiunta la chiave (PK).
-- Sono state condotte più campagne, a causa di bug alcuni utenti hanno iniziato a ricevere tentativi di consegna delle comunicazioni falliti, e alcuni non sono riusciti a mostrare nulla.
-- Esempio 1: communications
-- | user_id | campaign | status |
-- | 1000001 | promo_cats | error |
-- | 1000001 | promo_cats | error |
-- | 1000001 | promo_cats | success|
-- | 1000001 | promo_cats | success|
-- | 1000001 | promo_cats | error |
-- Esempio 2: communications
-- | user_id | campaign | status |
-- | 1000002 | promo_rats | error |
-- | 1000002 | promo_rats | error |
-- | 1000002 | promo_rats | error |
-- | 1000002 | promo_rats | error |
-- | 1000002 | promo_rats | error |
-- Sulle campagne promozionali inviate agli utenti:
-- 2.1 Scrivi una query che mostra il numero di utenti che hanno ricevuto con successo la comunicazione, per ogni campagna.
-- 2.2 Modifica la query per mostrare: il numero di utenti che non hanno ricevuto nessuna comunicazione di successo, per ogni campagna.