Q&A for those using, extending or developing Emacs
WITH closed_and_edited AS ( SELECT c.PostId, MIN(e.CreationDate) AS EditDate FROM PostHistory AS c INNER JOIN PostHistory AS e ON c.PostId = e.PostId AND c.PostHistoryTypeId = 10 -- Post Closed AND e.PostHistoryTypeId = 5 -- Edit Body AND c.CreationDate < e.CreationDate GROUP BY c.PostId ) SELECT COUNT(*), COUNT(oa.PostId), ROUND(COUNT(oa.PostId) * 100.0 / COUNT(*), 2) FROM closed_and_edited AS q OUTER APPLY ( SELECT PostId FROM PostHistory WHERE PostId = q.PostId AND PostHistoryTypeId = 11 -- Post Reopened AND CreationDate >= q.EditDate ) oa