-- Marketingijad alustavad promosüsteemi kampaaniaid rakenduses. On kaks tabelit:
-- campaigns – kampaaniate nimekiri
-- - campaign – kampaania nimi
-- - action_type – kampaania tüüp: "push" või "banner"
-- communications – backendi log, mis näitab nende kampaaniate saatmist kasutajatele
-- - user_id – kasutaja identifikaator
-- - campaign – kampaania nimi
-- - status – sündmuse staatus: "success" või "error"
---------------------------------------------------------------------------
-- 1. Alguses on campaigns tabelis 4 rida:
-- | campaign | action_type |
-- |-------------|-------------|
-- | promo_dogs | push | <- juhuslikult duplitseeritud
-- | promo_cats | banner |
-- | promo_cats | banner | <- kaks rida
-- | promo_rats | push |
-- Samuti on teada, et:
-- kampaaniad promo_dogs ja promo_cats viidi edukalt läbi 100 kasutajaga ning iga kasutaja sai ühe kommunikatsiooni,
-- ning promo_rats on alles planeerimisfaasis.
-- 1.1 Mida näitab päring:
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 Kuidas muutub vastus, kui JOIN tüüpi muudetakse LEFT-ks?