-- 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 | <- náhodně duplikováno
-- | promo_cats | banner |
-- | promo_cats | banner | <- dva řádky
-- | promo_rats | push |
-- Je také známo, že:
-- kampaně promo_dogs a promo_cats byly úspěšně realizovány 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 AS campaign
-- 1.2 Jak se změní odpověď, pokud změníme typ JOIN na LEFT?