Using Self Joins To Calculate Retention, Churn, And Reactivation Metrics | Hacker News Reader