Code :
SELECT min(d.date) AS date, min(d.week_day) week_day, d.year, d.month, d.day, e1.event_options AS [type], COUNT(DISTINCT e1.visitor_id) AS [shown], COUNT(DISTINCT (e1.visitor_id + e2.visitor_id)) AS [clicked], round(cast(COUNT(DISTINCT (e1.visitor_id + e2.visitor_id)) AS float) / COUNT(DISTINCT e1.visitor_id) * 100 ,2) AS [click_rate], COUNT(DISTINCT (e1.visitor_id + e3.visitor_id)) AS [formul2], COUNT(DISTINCT (e1.visitor_id + e4.visitor_id)) AS [formul7], COUNT(DISTINCT (e1.visitor_id + e3.visitor_id)) + COUNT(DISTINCT (e1.visitor_id + e4.visitor_id)) AS [total], round(cast(COUNT(DISTINCT (e1.visitor_id + e3.visitor_id)) + COUNT(DISTINCT (e1.visitor_id + e4.visitor_id)) AS float) / COUNT(DISTINCT e1.visitor_id) * 100 , 2) AS [conversion_rate] FROM LOCALDB.dbo.l_dates d LEFT JOIN CLIENTDB.dbo.events e1 (NOLOCK) ON CONVERT (varchar(10), d.date, 102) = CONVERT (varchar(10), e1.date, 102) LEFT JOIN CLIENTDB.dbo.events e2 (NOLOCK) ON e1.visit_id = e2.visit_id AND e2.event_name = 'popin_social_kwartaal' AND e2.event_status = 'completed' LEFT JOIN CLIENTDB.dbo.events e3 (NOLOCK) ON e1.visitor_id = e3.visitor_id AND e3.event_options = 'formul2' AND e3.event_status = 'step5' AND e3.date > e1.date AND CONVERT (varchar(10), e1.date, 102) = CONVERT (varchar(10), e3.date, 102) LEFT JOIN CLIENTDB.dbo.events e4 (NOLOCK) ON e1.visitor_id = e4.visitor_id AND e4.event_options = 'formul7' AND e4.event_status = 'step5' AND e4.date > e1.date AND CONVERT (varchar(10), e1.date, 102) = CONVERT (varchar(10), e4.date, 102) WHERE e1.event_status = 'onload' AND d.date BETWEEN '2010-12-01' AND '2010-12-20' AND e1.event_name = 'popin_social_kwartaal' GROUP BY d.year, d.month, d.day, e1.event_options ORDER BY d.year, d.month, d.day, e1.event_options
|