-- # -- Specialiștii î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 comunicații 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 |
-- # -- | promo_cats | banner | <- duplicat aleatoriu
-- # -- | promo_cats | banner | <- două rânduri
-- # -- | promo_rats | push |
# # -- În plus, se știe că:
-- # -- campaniile promo_dogs și promo_cats au fost efectuate cu succes pe 100 de utilizatori, iar fiecare utilizator a primit o comunicare,
-- # -- în timp ce 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
-- # -- 1.2 Cum se va schimba răspunsul dacă se schimbă tipul de JOIN în LEFT?
-- # -- 1.3 Indicați ordinea de execuție a operatorilor în această interogare.
-- Răspuns:
promo_dogs ... ...