Combining Revenue and Spend

I have a dataset with Facebook spend data and a dataset with revenue data. There are two join keys that will join the data... the date and AdID. 

 

I can combine the data for both, but what ends up happening, the AdIDs are duplicated for every instance shared which does happen. Ideally, I'd want to divide the spend based on the amount of AdIDs shared in a single day...

 

Count of AdID per day / Spend = Shared spend by AdID

 

Does anyone have a solution for this? Or a different way to setup the data is fine too. Just trying to get a 1:1 match to spend and revenue based on a shared parameter between the data sets. 

Best Answer

  • ST_-Superman-_
    Accepted Answer

    You need to aggregate the data to the same level prior to joining the tables.

     

    You will need your revenue table and your spend table to aggregate their values by date and AdID.

     

    SELECT
    `AdID`
    ,count(`AdID`) -- this will tell you how many times the AdID appears each day
    ,`Date`
    ,sum(`Spend`) as `Total Spend`

    FROM spend_table
    GROUP BY `AdID`,`Date`
    ORDER BY `AdID`,`Date`

     

    SELECT
    `AdID`
    ,count(`AdID`) -- this will tell you how many times the AdID appears each day
    ,`Date`
    ,sum(`Revenue`) as `Total Revenue`

    FROM revenue_table
    GROUP BY `AdID`,`Date`
    ORDER BY `AdID`,`Date`

     

    Now, when you join these two tables, you will have a 1:1 ratio for each combo of AdID and Date