Top downvoters

0

Please login or register to vote for this query.

(click on this box to dismiss)

Ask Different

Q&A for power users of Apple hardware and software

-- Compared the original, this doesn't fail if the number 
-- of upvotes is zero (e.g., seen when running it on 
-- Stack Overflow):
--
--    "Line 1: Divide by zero error encountered. The statement 
--     has been terminated."
--
-- Though the ratio is no longer strictly correct in the 
-- absolute sense. But the sorting is not affected. That
-- would probably be trivial to fix, e.g. by excluding 
-- users with zero upvotes.
--
-- It also:
--   1. Limits the output to 150 (instead of 
--      about 50,000 on Stack Overflow).
--
--   2. Rounds the ratio to reasonable number of 
--      significant digits


SELECT
    row_number()
        over (ORDER BY Downvotes DESC, Upvotes ASC, DisplayName, Id)
        as Rank,
    Id as [User Link],
    Downvotes,
    Upvotes,
    ((Cast(Downvotes as float)/(Upvotes+1))) as Ratio,
    LastAccessDate  as [Last access date],
    CONVERT(varchar(10), CreationDate, 103) as "Desde"
INTO #Downvoters
FROM Users
WHERE Id <> -1 and Downvotes >= 10

SELECT TOP 150 * 
FROM #Downvoters
ORDER BY Rank

SELECT Rank, Downvotes
FROM #Downvoters
ORDER BY Ratio DESC

Enter Parameters

Options:
Switch to meta site
loading Hold tight while we fetch your results