-- Οι marketers ξεκινούν προωθητικές καμπάνιες στην εφαρμογή της υπηρεσίας. Υπάρχουν δύο πίνακες:
-- campaigns – λίστα καμπανιών
-- - campaign – όνομα καμπάνιας
-- - action_type – τύπος καμπάνιας: "push" ή "banner"
-- communications – λογιστικό αρχείο backend με τις αποστολές επικοινωνιών αυτών των καμπανιών στους χρήστες
-- - user_id – αναγνωριστικό χρήστη
-- - campaign – όνομα καμπάνιας
-- - status – κατάσταση γεγονότος: "success" ή "error"
---------------------------------------------------------------------------
-- 1. Αρχικά, στον πίνακα campaigns υπάρχουν 4 γραμμές:
-- | campaign | action_type |
-- |-------------|-------------|
-- | promo_dogs | push | <- τυχαία διπλότυπο
-- | promo_cats | banner |
-- | promo_cats | banner | <- δύο γραμμές
-- | promo_rats | push |
-- Είναι επίσης γνωστό ότι:
-- οι καμπάνιες promo_dogs και promo_cats πραγματοποιήθηκαν με επιτυχία σε 100 χρήστες και κάθε χρήστης έλαβε μια επικοινωνία,
-- και το promo_rats βρίσκεται μόνο στο στάδιο του σχεδιασμού.
-- 1.1 Τι θα εμφανίσει το ερώτημα:
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 Πώς θα αλλάξει η απάντηση αν αλλάξει ο τύπος JOIN σε LEFT;