-- # -- Οι διαφημιστές ξεκινούν προωθητικές καμπάνιες στην εφαρμογή της υπηρεσίας. Υπάρχουν δύο πίνακες:
-- # -- 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
-- # -- 1.2 Πώς θα αλλάξει η απάντηση αν αλλάξει ο τύπος JOIN σε LEFT;
-- # -- 1.3 Δώστε τη σειρά εκτέλεσης των τελεστών σε αυτό το ερώτημα.
-- Απάντηση:
promo_dogs ... ...