-- # -- 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 los 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 |
-- # -- | promo_cats | banner | <- duplicado aleatorio
-- # -- | promo_cats | banner | <- dos filas
-- # -- | promo_rats | push |
# # -- Además, 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,
-- # -- mientras que 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
-- # -- 1.2 ¿Cómo cambiará la respuesta si se reemplaza el tipo de JOIN por LEFT?
-- # -- 1.3 Indique el orden de ejecución de los operadores en esta consulta.
-- Respuesta:
promo_dogs ... ...