Bonjour: Quelqu'un peut-il m'aider avec ce problème. p>
Toutes nos campagnes commencent par une date p>
"20200312_news _....." P>
Je veux pouvoir obtenir des informations "nouvel utilisateur" pendant une période de 7 jours (I. 2020-03-12 à 2020-03-19) P>
Comment puis-je automatiser ce processus? J'ai 100 de ces campagnes. Je connais ma date de début car c'est dans le nom de la campagne. Je connais ma date de fin parce que c'est juste +7. p>
Je veux faire du travail en baisse comme: start_date = gauche (trappefrcamaign, 8) find_date = gauche (trappe.campaign, 8) +7. Mais alors comment puis-je dire de me donner des informations de nouveaux utilisateurs de start_date à end_date. [Entrez la description de l'image ici] [1] p>
Ceci est mon code très basique: p>
Sélectionner traficsource.campaign comme campagne, p>
- Nouveaux utilisateurs (métrique) Compter (distinct ( CAS Quand des totaux.Newvisits = 1 puis FullVisitoriID AUTRE NUL FINIR )) Comme neufs_utilisateurs p>
de
Où totale.Visites = 1 et _Table_suffix entre '20200101'
Et '20201231' P>
groupe par
Traficsource.Campaign P> table_1.ga_sessions _ * code> p>
3 Réponses :
Si je reçois votre question correcte, vous cherchez à extraire la date du nom de la campagne, puis à tenter d'y ajouter 7 et à obtenir tous les nouveaux utilisateurs
Voici quelque chose que vous pouvez essayer P>
select PARSE_DATE('%Y%m%d',(SUBSTR('20200312_NEWS_SampleData',0,8))), DATE_ADD (PARSE_DATE('%Y%m%d',(SUBSTR('20200312_NEWS_SampleData',0,8))), INTERVAL 7 DAY)
Donc, je reçois ma date de début et la date de fin. Je suis capable d'analyser la date. Mais par exemple, si la date de début de la campagne est "2020-01-03" et la date de fin est "2020-01-10", mais les données "Nouveau utilisateur" proviennent de "2020-01-03" à " 2020- 04-05 strong> ". Le "nouvel utilisateur" ne me donne pas de données de la plage de date "" 2020-01-03 "à" 2020-01-10 fort> " p>
Mon code: P>
Sélectionner
traficsource.campaign comme campagne, p>
cas quand (substraire (trappe (trappe-trafic.camagnaign, 10,4)) = 'Actualités' alors parse_date ('% Y% m% d', (substraire (trappe-trappe.camagnaign, 0,8))) Fin comme start_date,
CAS QUAND (SUBSTRUM (TRADIENSOURCE.CAMPAGAGN, 10,4)) = 'Actualités' Puis DATE_ADD (Parse_Date ('% Y% M% D', (Substr (TrafalSource.camagnaign, 0,8)), intervalle 7 jours) fin comme end_date, p>
- Nouveaux utilisateurs (métrique)
Compter (distinct (
CAS
Quand des totaux.Newvisits = 1 puis FullVisitoriID
AUTRE
NUL
FINIR
)) Comme neufs_utilisateurs p>
de
où les totaux.Visits = 1 et _Table_suffix entre '20190101'
Et '20201231' P>
groupe par
Traficsource.Campaign P>
commander par
2 desc p>
GA_SESSSIONS _ * CODE> P>
Une autre chose agaçante est que lorsque je change de la plage de dates à: _table_suffix entre '20180101' et '20201231' Ça me dit "Échec de l'analyse de la chaîne d'entrée" 2020xxxx "" Comment puis-je passer au-delà de cela. Si je ne peux pas analyser, puis sauter
Je pense que je l'ai finalement compris. Mais j'ai écrit le pire code dans la galaxie. Quelqu'un peut-il m'aider à le rendre plus efficace: p>
Sélectionner table_xyz.campaign, table_xyz.start_date, table_xyz.end_date, somme (col_1) De ( p>
Sélectionner b. Campagne, start_date, end_date, p>
(cas quand.Date> = b.start_date et a.date <= b.end_date puis somme (A.New_USers) finalement) comme col_1 p>
de table_1.vw_ga_table1 sur A.Camp = B.Campaign P>
groupe par
B.Camaign,
a.date, b.start_date, b.end_date p>
Commander par B.Campaign Desc) Table_xyz P>
groupe par table_xyz.campaign, table_xyz.start_date, table_xyz.end_date p> a
Rejoindre extérieur gauche table_2.ga_tably2 code> B p>