Sobes.tech
Senior

-- # -- 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. Na początku, w tabeli campaigns jest 4 wiersze: -- # -- | campaign | action_type | -- # -- |-------------|-------------| -- # -- | promo_dogs | push | -- # -- | promo_cats | banner | <- losowo zduplikowane -- # -- | promo_cats | banner | <- dwa wiersze -- # -- | promo_rats | push | # # -- Dodatkowo wiadomo, ż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 planach. -- # -- 1.1 Co wyświetli 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 -- # -- 1.2 Jak zmieni się odpowiedź, jeśli zmieni się typ JOIN na LEFT? -- # -- 1.3 Podaj kolejność wykonywania operatorów w tym zapytaniu. -- Odpowiedź: promo_dogs ... ...