Top Users by location and tag (with total reputation)

1

Please login or register to vote for this query.

(click on this box to dismiss)

Created by samliew (http://stackoverflow.com/users/584192/samuel-liew)

Amateur Radio

Q&A for amateur radio enthusiasts

-- Top Users by location and tag (see http://stackoverflow.com/tags)
-- Created by samliew (http://stackoverflow.com/users/584192/samuel-liew)
-- Modified by sgryzko
-- Modified by Chris Curtis

WITH QuestionScores AS
(
  SELECT
    Users.Id AS [User Link],
    SUM(Questions.Score) AS Score
  FROM Posts as Questions 
    INNER JOIN Users
    ON Questions.OwnerUserId = Users.Id
    
    INNER JOIN PostTags 
    ON PostTags.PostId = Questions.Id
    
    INNER JOIN Tags
    on Tags.Id = PostTags.TagId
    
  WHERE
    LOWER(Location) LIKE LOWER('%##location##%')
    and Tags.Tagname='##tagname##'
  GROUP BY
    Users.Id
),

AnswerScores AS
(
  SELECT
    Users.Id AS [User Link],
    SUM(Answers.Score) AS Score
  FROM Posts AS Answers 
    INNER JOIN Posts AS ParentQuestions 
    ON ParentQuestions.Id = Answers.ParentId
    
    INNER JOIN Users AS Users
    ON Answers.OwnerUserId = Users.Id
    
    INNER JOIN PostTags 
    ON PostTags.PostId = Answers.ParentId
    
    INNER JOIN Tags
    ON Tags.Id = PostTags.TagId
  WHERE
    LOWER(Location) LIKE LOWER('%##location##%')
    and Tags.Tagname='##tagname##'
  GROUP BY
    Users.Id
)

SELECT 
  TOP 500
  ROW_NUMBER() OVER(ORDER BY (ISNULL(QuestionScores.Score, 0) + ISNULL(AnswerScores.Score, 0)) DESC) AS [#],
  ISNULL(QuestionScores.[User Link], AnswerScores.[User Link]) as [User Link],
  ISNULL(QuestionScores.Score, 0) as [Question Score],
  ISNULL(AnswerScores.Score, 0) as [Answer Score],
  ISNULL(QuestionScores.Score, 0) + ISNULL(AnswerScores.Score, 0) as [Tag Score],
  Users.reputation as [Total Reputation]
FROM
  AnswerScores
FULL JOIN QuestionScores
  ON AnswerScores.[User Link] = QuestionScores.[User Link]
FULL JOIN Users 
  ON ISNULL(QuestionScores.[User Link], AnswerScores.[User Link]) = Users.Id
    
ORDER BY
  [Tag Score] DESC;

Enter Parameters

Options:
Switch sites:
loading Hold tight while we fetch your results