Sobes.tech
Senior

-- # -- Marketéři spouštějí promoční kampaně v aplikaci služby. Existují dvě tabulky: -- # -- campaigns - seznam kampaní -- # -- - campaign - název kampaně -- # -- - action_type - typ kampaně: "push" nebo "banner" -- # -- communications - log backendu s odesíláním komunikací těchto kampaní uživatelům -- # -- - user_id - identifikátor uživatele -- # -- - campaign - název kampaně -- # -- - status - stav události: "success" nebo "error" -- ------------------------------------------------------------------------------------------------------------------------ -- # -- 1. Zpočátku je v tabulce campaigns 4 řádky: -- # -- | campaign | action_type | -- # -- |-------------|-------------| -- # -- | promo_dogs | push | -- # -- | promo_cats | banner | <- náhodně duplikováno -- # -- | promo_cats | banner | <- dvě řádky -- # -- | promo_rats | push | # # -- Dále je známo, že: -- # -- kampaně promo_dogs a promo_cats byly úspěšně provedeny u 100 uživatelů a každý uživatel obdržel jednu komunikaci, -- # -- zatímco promo_rats je teprve v plánování. -- # -- 1.1 Co zobrazí dotaz: 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 se změní odpověď, pokud změníme typ JOIN na LEFT? -- # -- 1.3 Uveďte pořadí provádění operátorů v tomto dotazu. -- Odpověď: promo_dogs ... ...