Q&A for amateur radio enthusiasts
with p as ( select id from Posts where PostTypeId = 2 ) ,a as ( select p.id, sum(case when v.votetypeid = 2 then 1 else 0 end) as upvotes, sum(case when v.votetypeid = 3 then 1 else 0 end) as downvotes from p join votes v on p.id = v.PostId group by p.id ), m as ( select upvotes, downvotes, count(id) as cnt from a group by upvotes, downvotes ), sm as ( select upvotes, sum(cnt) vsum from m group by upvotes ) select m.downvotes,cnt/vsum from m join sm on m.upvotes = sm.upvotes where m.upvotes = 1 order by m.downvotes