-- # -- Pazarlama uzmanları, uygulama hizmetinde promosyon kampanyaları başlatıyor. İki tablo var:
-- # -- campaigns - kampanya listesi
-- # -- - campaign - kampanya adı
-- # -- - action_type - kampanya türü: "push" veya "banner"
-- # -- communications - bu kampanyaların kullanıcılarına gönderilen iletişimlerin backend kaydı
-- # -- - user_id - kullanıcı kimliği
-- # -- - campaign - kampanya adı
-- # -- - status - olay durumu: "success" veya "error"
-- ------------------------------------------------------------------------------------------------------------------------
-- # -- 1. Başlangıçta, campaigns tablosunda 4 satır var:
-- # -- | campaign | action_type |
-- # -- |-------------|-------------|
-- # -- | promo_dogs | push |
-- # -- | promo_cats | banner | <- rastgele çoğaltılmış
-- # -- | promo_cats | banner | <- iki satır
-- # -- | promo_rats | push |
# # -- Ayrıca, biliniyor ki:
-- # -- promo_dogs ve promo_cats kampanyaları 100 kullanıcıyla başarıyla gerçekleştirildi ve her kullanıcı bir ileti aldı,
-- # -- promo_rats ise sadece planlanıyor.
-- # -- 1.1 Sorgu ne gösterecek:
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 türü LEFT ile değiştirilirse cevap nasıl değişir?
-- # -- 1.3 Bu sorgudaki operatörlerin yürütülme sırasını belirtin.
-- Yanıt:
promo_dogs ... ...