Select big.advertiser_id, count(big.user_id) as num from
(Select advertiser.advertiser_id, advertiser.ad_id, user.user_id, user.price from advertiser left join user on (user.ad_id = advertiser.ad_id)) big
where big.price > 0 or big.price is null [some ads have no customers]
Group by big.advertiser_id
having num > 0
ROI: by advertiser. 1point 3acres
Select revenue.adertiser_id, (revenue.revenue-cost.cost)/cost.cost as ROI from
(
Select sub1.advertiser_id, sum(ifnull(user.price, 0)) as revenue from
(Select a1.advertiser_id, a1.ad_id, u1.user_id, u1.price
from advertiser a1
left join user u1 on (user.ad_id = advertiser.ad_id)) sub1 . check 1point3acres for more.
) revenue
Inner join . 1point3acres.com
(
Select a2.advertiser_id, sum(a2.spend) as cost from advertiser a2 group by a2.advertiser_id
) cost
On cost.advertiser_id = revenue.advertiser_id