Q&A for professional and enthusiast programmers
declare @start datetime = '2017-10-08'; with terms as( ---https://stackoverflow.com/questions/7778444/sql-select-return-boolean-based-on-condition select iif(ClosedDate <= CreationDate+3 /*and IsClosedAsDuplicate = 0*/, 1, 0) closed, cast(iif(DeletionDate <= CreationDate+3, 1, 0) as bit) deleted, iif(AnswerCount > 0, 1, 0) answered, Id PostId from PostsWithDeleted where PostTypeId = 1 ) select dateadd(week, datediff(week, @start, CreationDate), @start) week, sum(iif(closed = 1 or Score < 0, 100.0, 0))/count(*) bad, sum(iif(Score = 0 or answered = 0 or closed = 1, 100.0, 0))/count(*) neutral, sum(iif((answered = 1 and Score = 0) or Score > 0, 100.0, 0))/count(*) good, sum(iif(closed = 1 or Score < 0 or deleted = 1, 1.0, 0))/count(*) bad_deleted, sum(iif(Score < 0, 100.0, 0))/count(*) downvoted, sum(closed)*100.0/count(*) closed, count(deleted)*100.0/count(*) deleted, sum(answered)*100.0/count(*) answered from terms join PostsWithDeleted on Id = PostId where PostTypeId = 1 group by dateadd(week, datediff(week, @start, CreationDate), @start) order by dateadd(week, datediff(week, @start, CreationDate), @start)