-- Marketingchilar servis ilovasida promokampaniyalarni boshlashmoqda. Ikkita jadval mavjud:
-- campaigns – kampaniya ro‘yxati
-- - campaign – kampaniya nomi
-- - action_type – kampaniya turi: "push" yoki "banner"
-- communications – bu kampaniyalarning foydalanuvchilarga yuborilishi bo‘yicha backend logi
-- - user_id – foydalanuvchi identifikatori
-- - campaign – kampaniya nomi
-- - status – voqea holati: "success" yoki "error"
---------------------------------------------------------------------------
-- 1. Dastlab, campaigns jadvalida 4 qator mavjud:
-- | campaign | action_type |
-- |-------------|-------------|
-- | promo_dogs | push | <- tasodifan takrorlangan
-- | promo_cats | banner |
-- | promo_cats | banner | <- ikki qator
-- | promo_rats | push |
-- Shuningdek, quyidagilar ma'lumki:
-- promo_dogs va promo_cats kampaniyalari 100 foydalanuvchi bilan muvaffaqiyatli amalga oshirilgan va har bir foydalanuvchi bitta kommunikatsiya olgan,
-- promo_rats esa faqat rejalashtirilmoqda.
-- 1.1 So‘rov nima chiqaradi:
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 Agar JOIN turi LEFT ga o‘zgartirilsa, javob qanday o‘zgaradi?