-- Specialiști în marketing lansează campanii promoționale în aplicația serviciului. Există două tabele:
-- campaigns – lista campaniilor
-- - campaign – numele campaniei
-- - action_type – tipul campaniei: "push" sau "banner"
-- communications – jurnalul backend cu trimiterile de comunicări ale acestor campanii către utilizatori
-- - user_id – identificatorul utilizatorului
-- - campaign – numele campaniei
-- - status – statutul evenimentului: "success" sau "error"
---------------------------------------------------------------------------
-- 1. Inițial, în tabelul campaigns există 4 rânduri:
-- | campaign | action_type |
-- |-------------|-------------|
-- | promo_dogs | push | <- duplicat aleatoriu
-- | promo_cats | banner |
-- | promo_cats | banner | <- două rânduri
-- | promo_rats | push |
-- Se știe, de asemenea, că:
-- campaniile promo_dogs și promo_cats au fost finalizate cu succes pentru 100 de utilizatori, iar fiecare utilizator a primit o comunicare,
-- iar promo_rats este doar în planificare.
-- 1.1 Ce va afișa interogarea:
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 Cum se va schimba răspunsul dacă se schimbă tipul de JOIN în LEFT?