-- # -- 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 ... ...