Top 50 tag contributors

3

Please login or register to vote for this query.

(click on this box to dismiss)

Stack Overflow

Q&A for professional and enthusiast programmers

DECLARE @tagName nvarchar(35) = '##tagName##'

;
with voting as (
         SELECT 
                SUM(case votes.votetypeid 
                        WHEN 2 THEN   -- upvote
                           CASE posts.posttypeid 
                              WHEN 1 THEN 1  -- upvote question
                           END
                        WHEN 3 THEN -1  -- downvote
                 END) as Rep,
                 Votes.CreationDate AS CreationDate,
                 Posts.OwnerUserId 
          FROM   Posts
                 INNER JOIN Votes              
                   ON Votes.PostId = Posts.Id
                INNER JOIN Users ON Posts.OwnerUserId = Users.Id
                   
          WHERE ( Posts.CommunityOwnedDate IS NULL ) 
          GROUP BY Votes.CreationDate,
                    Posts.OwnerUserId
)
SELECT TOP 50 
    TagName,
    COUNT(*) AS UpVotes,
    Users.DisplayName as UserName,
    number = ROW_NUMBER() OVER (ORDER BY TagName)
FROM Tags
    INNER JOIN PostTags ON PostTags.TagId = Tags.id
    INNER JOIN Posts ON Posts.ParentId = PostTags.PostId
    INNER JOIN Votes ON Votes.PostId = Posts.Id and VoteTypeId = 2
    INNER JOIN Users ON Posts.OwnerUserId = Users.Id
WHERE 
    Tags.TagName = @tagName
    AND Posts.CommunityOwnedDate IS NULL
GROUP BY TagName, DisplayName
ORDER BY UpVotes DESC

Enter Parameters

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