Q&A for science fiction and fantasy enthusiasts
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