Kämpfe mit einer komplexen SQL -Abfrage [Duplikat]
Posted: 01 Mar 2025, 13:23
Ich habe die folgenden Tabellen < /p>
In den Benutzern ist jeder Tag#_depositbetrag Feld eine kumulative Summe. Darüber hinaus kann die Kampagnen -ID 0 sein und signalisiert, dass der Benutzer nicht über eine Marketingkampagne registriert wurde.
wobei jedes num_day # _depositors Feld eine kumulative Anzahl ist, wie viele Benutzer innerhalb # Tage eine Einzahlung erstellt haben. Das Feld "Registrierungen" sagt uns, wie viele Spieler an einem bestimmten Tag in einem bestimmten Land von einer bestimmten Marketingkampagne registriert wurden (da dieselbe Kampagne an mehreren Tagen in mehreren Ländern ausgeführt werden kann)., bei denen 0 Registrierungen angezeigt wurden. Ich bin mir nicht sicher, wie ich die Abfrage beheben soll.
Code: Select all
Campaigns
Registration_Date DATE
Campaign_ID INT
Country STRING
Advertising_Channel STRING
Registrations INT
Users
Registration_Date DATE
Registration_ID INT
Campaign_ID INT
Country STRING
Day7_Deposit_Amount INT
Day30_Deposit_Amount INT
Day60_Deposit_Amount INT
Day90_Deposit_Amount INT
Day120_Deposit_Amount INT
Day150_Deposit_Amount INT
Day180_Deposit_Amount INT
Code: Select all
Registration_Date
Registration_Country
TrafficType
Advertising_Channel
Advertising_Spend
Number_Registrations
Number_Day7_Depositors
Number_Day30_Depositors
Number_Day60_Depositors
Number_Day90_Depositors
Number_Day120_Depositors
Number_Day150_Depositors
Number_Day180_Depositors
Accum_Day7_Deposit_Amount
Accum_Day30_Deposit_Amount
Accum_Day60_Deposit_Amount
Accum_Day90_Deposit_Amount
Accum_Day120_Deposit_Amount
Accum_Day150_Deposit_Amount
Code: Select all
SELECT
users.registration_date Registration_Date,
CASE
WHEN users.country = "USA" THEN "USA"
ELSE "Rest of the World"
END Country,
CASE
WHEN users.campaign_id = 0 THEN "Organic"
ELSE "Paid"
END TrafficType,
CASE
WHEN users.campaign_id = 0 THEN "Organic"
ELSE campaigns.channel
END Advertising_Channel,
CASE
WHEN users.campaign_id = 0 THEN 0
ELSE campaigns.spend
END Advertising_Spend,
count(users.registration_id) Registrations,
SUM(IF(users.day7_deposit_amount > 0, 1,0)) Number_Day7_Depositors,
SUM(users.day7_deposit_amount) Accum_Day7_Deposit_Amount,
FROM
campaigns
RIGHT JOIN
users
ON
campaigns.campaign_id = users.campaign_id AND
campaigns.registration_date = users.registration_date AND
campaigns.country = users.country
GROUP BY
users.campaign_id,
users.registration_date,
country,
campaigns.channel,
campaigns.spend
< /code>
Hier ist das Problem. Ich bekomme die meisten Daten, aber alle Zeilen in Kampagnen