我使用的是POSTGRESQL,並且正在創建一個表,它將加入adwords數據和salesforce數據,以便從成本/展示次數中獲得我的度量標準的完整視圖,以形成填充salesforce(活動成員記錄)。我們可以通過UTM參數加入這兩件事(銷售人員和AdWords),這個UTM參數是adwords中的「adgroup」值,併成爲salesforce中的「marketing_content_stamp__c」。問題是我們已經創建了一個cookie,它說:「如果這個人是有機的,從他們在這裏的最後一天查找存儲在個人cookie中的UTM值」。這就產生了一個問題,即有時我們會在表單中填入salesforce並記錄下該日期的廣告組沒有記錄。SQL - 如果日期在加入期間不匹配 - 更改日期然後加入
我想做什麼: 加入表,說temp.adwords_sf‘和廣告組表「如果我的表中存在填表’具有該日期沒有記錄,加入記錄到最後記錄的廣告組日期。」
例如,我在11/13的日期對我的ADGROUPX有一個表單填寫,但是我點擊的最後一個記錄是11/11。我希望這樣做,以使表單填充記錄與11/11相關聯,否則它不會顯示。
SQL查詢:
drop table temp.adwords_ui;
Create table temp.adwords_ui as(
Select
cast(date as date),
Case
WHEN adgroup like '%-uk-%' then 'UK'
WHEN adgroup like '%-usa-%' then 'USA'
WHEN adgroup like '%-us-%' then 'USA'
END AS Target_Country,
Case
WHEN adgroup like '%-product-social%' then 'Product-SocialNetworks'
WHEN adgroup like '%-product-solu%' then 'Product-Solutions'
WHEN adgroup like '%-brand-%' then 'Brand'
WHEN adgroup like '%-competitors-%' then 'Competitors'
END AS ad_grouping,
adgroup,
sum(adcost) as cost,
sum(impressions) as impressions,
sum(adclicks) as clicks
from rjm_current.adwords45309635_v2
where adcost <> 0
and date > '11/3/2015'
group by 1,2,3,4);
drop table temp.adwords_sf;
Create table temp.adwords_sf as (
Select
id,
campaign_name__c as campaign,
marketing_content_stamp__c as marketing_content,
cast(firstrespondeddate as date) as form_fill_date,
count(*) as form_fills
from rjm_current.sf_campaignmember
where marketing_source_stamp__c = 'google-adwords'
and firstrespondeddate > '11/3/2015'
group by 1,2,3,4);
drop table custom.adwords;
Create table custom.adwords as (
select
a.date,
a.target_country,
a.ad_grouping,
a.adgroup,
b.campaign,
a.cost,
a.impressions,
a.clicks,
b.form_fills
--((a.cost)/nullif(a.clicks,0)) as CPC,
--(a.clicks/a.impressions) as CTR,
--((a.cost)/nullif(b.form_fills,0)) as Cost_per_FormFill
from temp.adwords_ui a
Left Join temp.adwords_sf b on a.adgroup = b.marketing_content
and cast(a.date as date) = cast(b.form_fill_date as date)
);
雖然這將是很奇怪。所以這將是每個字段的子查詢?似乎需要有一個更好的方法。 – Berra2k
這是有點,但我認爲這是實現它的唯一方法,你試圖加入不平等,這不是它應該做的。我只是做了類似的事情,製作一個'sessionaliser'腳本來將個人網絡日誌點擊鏈接到會話。如果你想要擺脫純粹的SQL,我有一個小腳本遍歷記錄並填充鏈接表,將'點擊'表連接到'會話'表,每天運行一次,因此性能不那麼重要。 – JeffUK
只要再考慮一下..你需要爲組成主鍵的列做上述操作,然後在連接中使用它來引入所有其他字段。 – JeffUK