-- # -- Marketing mutaxassislari xizmat dasturida promo-aksiyalarni boshlashmoqda. Ikkita jadval mavjud:
-- # -- campaigns - kampaniya ro'yxati
-- # -- - campaign - kampaniya nomi
-- # -- - action_type - kampaniya turi: "push" yoki "banner"
-- # -- communications - bu kampaniyalarning foydalanuvchilarga yuborilgan kommunikatsiyalarining backend yozuvi
-- # -- - 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 |
-- # -- | promo_cats | banner | <- tasodifan takrorlangan
-- # -- | promo_cats | banner | <- ikki qator
-- # -- | promo_rats | push |
# # -- Bundan tashqari, quyidagilar ma'lumki:
-- # -- promo_dogs va promo_cats kampaniyalari 100 foydalanuvchi bilan muvaffaqiyatli o'tkazildi va har bir foydalanuvchi bitta kommunikatsiya oldi,
-- # -- 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
-- # -- 1.2 Agar JOIN turi LEFT ga o'zgartirilsa, javob qanday o'zgaradi?
-- # -- 1.3 Bu so'rovda operatorlarning bajarilish tartibini ko'rsating.
-- Javob:
promo_dogs ... ...