Sobes.tech
Intern

-- Marketerzy uruchamiają kampanie promocyjne w aplikacji serwisu. Istnieją dwie tabele: -- campaigns – lista kampanii -- - campaign – nazwa kampanii -- - action_type – typ kampanii: "push" lub "banner" -- communications – log backendu z wysyłkami komunikacji tych kampanii do użytkowników -- - user_id – identyfikator użytkownika -- - campaign – nazwa kampanii -- - status – status zdarzenia: "success" lub "error" --------------------------------------------------------------------------- -- 1. Początkowo w tabeli campaigns jest 4 wiersze: -- | campaign | action_type | -- |-------------|-------------| -- | promo_dogs | push | <- losowo zduplikowane -- | promo_cats | banner | -- | promo_cats | banner | <- dwa wiersze -- | promo_rats | push | -- Wiadomo też, że: -- kampanie promo_dogs i promo_cats zostały pomyślnie przeprowadzone na 100 użytkownikach, a każdy użytkownik otrzymał jedną komunikację, -- a promo_rats jest jeszcze w fazie planowania. -- 1.1 Co zwróci zapytanie: 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 Jak zmieni się odpowiedź, jeśli zmieni się typ JOIN na LEFT?