PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Temps entre deux événements

Vous pouvez utiliser la requête suivante :

SELECT user_id,
       MAX(CASE WHEN action = 'clear' THEN created_at END) -
       MAX(CASE WHEN action = 'create' THEN created_at END) AS time_diff 
FROM mytable
GROUP BY user_id 
HAVING COUNT(*) = 2

Le HAVING la clause filtre user_id groupes contenant uniquement un create action, comme enregistrer avec id=9 dans le PO.

Démo ici