-- 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;
-- 1.3 Δώστε τη σειρά εκτέλεσης των τελεστών σε αυτό το ερώτημα.
-- 2. Ο πίνακας campaigns διορθώθηκε: αφαιρέθηκαν οι διπλότυποι, προστέθηκε το κλειδί (PK).
-- Πραγματοποιήθηκαν περισσότερες καμπάνιες, λόγω σφαλμάτων, οι χρήστες άρχισαν να λαμβάνουν αποτυχημένες προσπάθειες παράδοσης επικοινωνιών, και μερικοί δεν κατάφεραν καν να εμφανιστούν.
-- Παράδειγμα 1: communications
-- | user_id | campaign | status |
-- | 1000001 | promo_cats | error |
-- | 1000001 | promo_cats | error |
-- | 1000001 | promo_cats | success|
-- | 1000001 | promo_cats | success|
-- | 1000001 | promo_cats | error |
-- Παράδειγμα 2: communications
-- | user_id | campaign | status |
-- | 1000002 | promo_rats | error |
-- | 1000002 | promo_rats | error |
-- | 1000002 | promo_rats | error |
-- | 1000002 | promo_rats | error |
-- | 1000002 | promo_rats | error |
-- Για τις προωθητικές καμπάνιες που στάλθηκαν στους χρήστες:
-- 2.1 Γράψτε ένα ερώτημα που εμφανίζει τον αριθμό των χρηστών που έλαβαν επιτυχώς την επικοινωνία, για κάθε καμπάνια.
-- 2.2 Τροποποιήστε το ερώτημα ώστε να εμφανίζει: τον αριθμό των χρηστών που δεν έλαβαν καμία επιτυχημένη επικοινωνία, για κάθε καμπάνια.