Sobes.tech
Senior

-- # -- Os profissionais de marketing lançam campanhas promocionais na aplicação do serviço. Existem duas tabelas: -- # -- campaigns - lista de campanhas -- # -- - campaign - nome da campanha -- # -- - action_type - tipo de campanha: "push" ou "banner" -- # -- communications - registo do backend com os envios de comunicações dessas campanhas aos utilizadores -- # -- - user_id - identificador do utilizador -- # -- - campaign - nome da campanha -- # -- - status - estado do evento: "success" ou "error" -- ------------------------------------------------------------------------------------------------------------------------ -- # -- 1. Inicialmente, na tabela campaigns, há 4 linhas: -- # -- | campaign | action_type | -- # -- |-------------|-------------| -- # -- | promo_dogs | push | -- # -- | promo_cats | banner | <- duplicado aleatoriamente -- # -- | promo_cats | banner | <- duas linhas -- # -- | promo_rats | push | # # -- Além disso, sabe-se que: -- # -- as campanhas promo_dogs e promo_cats foram realizadas com sucesso em 100 utilizadores, e cada utilizador recebeu uma comunicação, -- # -- enquanto que promo_rats está apenas em planeamento. -- # -- 1.1 O que irá mostrar a 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 Como mudará a resposta se trocar o tipo de JOIN por LEFT? -- # -- 1.3 Indique a ordem de execução dos operadores nesta consulta. -- Resposta: promo_dogs ... ...