-- # -- Marketingexperten starten Werbekampagnen in der Service-App. Es gibt zwei Tabellen:
-- # -- campaigns - Liste der Kampagnen
-- # -- - campaign - Name der Kampagne
-- # -- - action_type - Kampagnentyp: "push" oder "banner"
-- # -- communications - Backend-Log mit den Sendungen der Kommunikationen dieser Kampagnen an die Nutzer
-- # -- - user_id - Nutzer-ID
-- # -- - campaign - Name der Kampagne
-- # -- - status - Status des Ereignisses: "success" oder "error"
-- ------------------------------------------------------------------------------------------------------------------------
-- # -- 1. Anfangs enthält die Tabelle campaigns 4 Zeilen:
-- # -- | campaign | action_type |
-- # -- |-------------|-------------|
-- # -- | promo_dogs | push |
-- # -- | promo_cats | banner | <- zufällig dupliziert
-- # -- | promo_cats | banner | <- zwei Zeilen
-- # -- | promo_rats | push |
# # -- Außerdem ist bekannt, dass:
-- # -- die Kampagnen promo_dogs und promo_cats erfolgreich bei 100 Nutzern durchgeführt wurden, wobei jeder Nutzer eine Kommunikation erhielt,
-- # -- während promo_rats nur geplant ist.
-- # -- 1.1 Was gibt die Abfrage aus:
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 Wie ändert sich die Antwort, wenn der JOIN-Typ auf LEFT geändert wird?
-- # -- 1.3 Geben Sie die Ausführungsreihenfolge der Operatoren in dieser Abfrage an.
-- Antwort:
promo_dogs ... ...