J'ai une table qui ressemble à ceci:Agrégation dans SQL
Conversion_Date User_Name Last_Date_Touch Touch_Count
7/15/2017 A 6/17/2017 1
7/16/2017 B 6/24/2017 2
7/19/2017 A 6/20/2017 1
7/19/2017 C 6/29/2017 1
Je veux obtenir la somme des Touch_Count
des 30 derniers jours pour chaque Conversion_Date
par User_Name
dans SQL. La seule chose que je pouvais penser au début était de trouver la fenêtre temporelle pour chaque date de conversion qui remonte à 30 jours et je ne suis pas sûr de savoir comment l'agréger pour obtenir le résultat final.
D'abord, il ajoutait la fenêtre de 30 jours ci-dessous:
Conversion_Date User_Name Last_Date_Touch Touch_Count 30_Days_Ago
7/15/2017 A 6/17/2017 1 6/15/2017
7/16/2017 B 6/24/2017 2 6/16/2017
7/19/2017 A 6/20/2017 1 6/19/2017
7/19/2017 C 6/29/2017 1 6/19/2017
Je dois agréger pour qu'il ressemble à ceci:
Conversion_Date User_Name Last_Date_Touch Touch_Count SUM(Last30daysbyconversiondate)
7/15/2017 A 6/17/2017 1 5
7/16/2017 B 6/24/2017 2 5
7/19/2017 A 6/20/2017 1 4
7/19/2017 C 6/29/2017 1 4
Les deux derniers ont été 4 parce que la valeur last_date_touch du 17/05/2017 n'était pas dans la fenêtre de 30 jours pour 19/07/2017, de sorte que touch_count a été exclu faisant le nombre total 4 dans ce cas pour les deux dernières lignes.
Toute aide serait utile si vous savez comment faire cela en SQL.
Merci!
Je n'aurais jamais pensé à faire une auto-jointure ... génie. Merci! –
Pas de soucis @NickKnauer heureux de vous aider – scsimon
Cela fonctionnera-t-il encore si la colonne de la date de conversion est sous la forme d'un horodatage tel que '2017-07-15 01:34:29'? @scsimon –