Meine Firma hat eine Reihe von TV-Anzeigen geschaltet und wir messen die Auswirkungen von Änderungen in unserem Website-Traffic. Ich möchte die Kosten pro Sitzung, die wir generiert haben, anhand der Kosten für jede Anzeige ermitteln.SQL-Zählung mit mehreren eindeutigen IDs
Das Problem ist, die Tabelle, auf die es verweist, hat doppelte Daten, so dass meine derzeit cost_per_session nicht richtig zählt.
Was ich habe, so weit:
- client_net_cleared = Kosten für ad
- ad_time, media_outlet, & Programm = Kombinierter sind eine eindeutige Kennung für jede Anzeige
- diff = angenommene Sitzungen, generiert von der Anzeige
.
SELECT DISTINCT tadm.timestamp AS ad_time
, tadm.media_outlet AS media_outlet
, tadm.program AS program
, tadm.client_net_cleared AS client_net_cleared
, SUM(tadm.before_ad_sum) AS before_ad_sessions
, SUM(tadm.after_ad_sum) AS after_ad_sessions
, (SUM(tadm.after_ad_sum) - SUM(tadm.before_ad_sum)) AS diff
, CASE WHEN tadm.client_net_cleared = 0 THEN null
WHEN (SUM(tadm.after_ad_sum) - SUM(tadm.before_ad_sum)) <1 THEN null
ELSE (tadm.client_net_cleared/(SUM(tadm.after_ad_sum) - SUM(tadm.before_ad_sum)))
END AS cost_per_session
FROM tableau.km_tv_ad_data_merged tadm
GROUP BY ad_time,media_outlet,program,client_net_cleared
Beispieldaten:
ad_time | media_outlet | program | client_net_cleared | before_ad_sessions | after_add_sessions | diff | cost_per_session
---------------------|---------------|----------------|--------------------|--------------------|--------------------|------|-----------------
2016-12-09 22:55:00 | DIY | | 970 | 55 | 72 | 17 | 57.05
2016-12-11 02:22:00 | E! | E! News | 388 | 25 | 31 | 6 | 64.66
2016-12-19 21:15:00 | Cooking | The Best Thing | 428 | 70 | 97 | 27 | 15.85
2016-12-22 14:01:00 | Oxygen | Next Top Model | 285 | 95 | 148 | 53 | 5.37
2016-12-09 22:55:00 | DIY | | 970 | 55 | 72 | 17 | 57.05
2016-12-04 16:13:00 | Headline News | United Shades | 1698 | 95 | 137 | 42 | 40.42
Was ich brauche: nur eine Instanz jeder Anzeige zählen, wenn cost_per_session berechnet wird.
BEARBEITEN: Die Abfrage behoben, hatte eine halb abgeschlossene Zeile, wo ich dies versäumt, bevor Sie die Frage gestellt. :)
Bitte [Bearbeiten] Ihre Frage ein paar Zeilen zu zeigen, von Eingabedaten und einer gewünschten Ergebnismenge. Sind die Zeilen in Ihrer Tabelle doppelt vorhanden (in allen Spalten) oder unterscheiden sie sich in einigen Spalten? –
Guter Punkt! Ich habe jetzt Beispieldaten zur Verfügung gestellt. Es gibt Zeilen in der Tabelle, die vollständige Duplikate sind, ohne Unterschied in irgendeiner Spalte. – Minadorae