Ik ben een systeem aan het bouwen waar ik wil kijken of klanten die vorig jaar een activiteit gedaan hebben het jaar er op ook weer een activiteit gedaan hebben. Op deze manier wil ik een soort terugkomst percentage berekenen.

Tabellen:

USER
id
username

EVENT
id
name

USER_EVENT
id
user
event

Ik kom er niet uit om dit netjes in 1 query te stoppen. Als ik bijvoorbeeld een IN() statement gebruik pakt hij het totaal aantal users dat in de twee jaar een aankoop heeft gedaan. Ik wil juist het aantal overlappende gebruikers weten. Hoe kan ik dit netjes in SQL oplossen zonder vies te gaan doen in PHP? Ik zie momenteel door de bomen het bos niet meer...

Dit heb ik nu maar levert dus nog niet het gewenste resultaat. Iemand enig idee?


SELECT COUNT(DISTINCT ue.user) AS `aantal`
FROM `user_event` AS `ue`
INNER JOIN `event` AS `e` ON e.id = ue.event 
WHERE (DATE_FORMAT(e.start, '%Y') IN (2012, 2011)) 

Reageren