-- Los especialistas en marketing lanzan campañas promocionales en la aplicación del servicio. Hay dos tablas:
-- campaigns – lista de campañas
-- - campaign – nombre de la campaña
-- - action_type – tipo de campaña: "push" o "banner"
-- communications – registro del backend con envíos de comunicaciones de estas campañas a los usuarios
-- - user_id – identificador del usuario
-- - campaign – nombre de la campaña
-- - status – estado del evento: "success" o "error"
---------------------------------------------------------------------------
-- 1. Inicialmente, en la tabla campaigns hay 4 filas:
-- | campaign | action_type |
-- |-------------|-------------|
-- | promo_dogs | push | <- duplicado aleatoriamente
-- | promo_cats | banner |
-- | promo_cats | banner | <- dos filas
-- | promo_rats | push |
-- También se sabe que:
-- las campañas promo_dogs y promo_cats se realizaron con éxito en 100 usuarios y cada usuario recibió una comunicación,
-- y promo_rats solo está en planificación.
-- 1.1 ¿Qué mostrará la consulta:
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 ¿Cómo cambiará la respuesta si se cambia el tipo de JOIN a LEFT?