-- Marketéri spúšťajú promočné kampane v aplikácii služby. Existujú dve tabuľky:
-- campaigns – zoznam kampaní
-- - campaign – názov kampane
-- - action_type – typ kampane: "push" alebo "banner"
-- communications – log backendu s odosielaním komunikácií týchto kampaní používateľom
-- - user_id – identifikátor používateľa
-- - campaign – názov kampane
-- - status – stav udalosti: "success" alebo "error"
---------------------------------------------------------------------------
-- 1. Na začiatku, v tabuľke campaigns sú 4 riadky:
-- | campaign | action_type |
-- |-------------|-------------|
-- | promo_dogs | push | <- náhodne duplikované
-- | promo_cats | banner |
-- | promo_cats | banner | <- dva riadky
-- | promo_rats | push |
-- Je tiež známe, že:
-- kampane promo_dogs a promo_cats boli úspešne realizované u 100 používateľov a každý používateľ dostal jednu komunikáciu,
-- a promo_rats je ešte v plánovaní.
-- 1.1 Čo ukáže 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 AS campaign
-- 1.2 Ako sa zmení odpoveď, ak sa typ JOIN zmení na LEFT?