tag rankings

6

Please login or register to vote for this query.

(click on this box to dismiss)

Calculates rank by tag. Make tag name empty spaces for all tags

Gardening and Landscaping Meta

Q&A about the site for gardeners and landscapers

-- tag rankings
-- Calculates rank by tag. Make tag name empty spaces for all tags

DECLARE @tagName varchar(255) 
DECLARE @tagInput bit
SET @tagname = rtrim(##TagName:string##)

IF RTRIM(@tagname) = ''

   SET @tagInput = 0 
ELSE
   SET @tagInput = 1
 

 
;WITH UserTagScores
as 
(SELECT  
   a.OwnerUserId,
   t.TagName,
   SUM(CASE v.VoteTypeID
           WHEN 2 THEN 1
           WHEN 3 THEN  -1
   END) as  score

FROM 
   votes v
   INNER JOIN Posts a
   ON v.PostID = a.ID
   INNER JOIN Posts q
   ON a.parentId = q.id
   INNER JOIN PostTags pt
   ON q.id = pt.PostId
   INNER JOIN Tags T
   ON pt.TagId = t.id
WHERE
   v.voteTypeId in (2,3)  -- Up and down votes
   and
   a.PostTypeID = 2  -- Answers only
   AND
   (a.CommunityOwnedDate is null or 
    a.CommunityOwnedDate > v.CreationDate)
   AND 
   (@tagInput = 0
    or t.TagName = @TagName)
    AND a.OwnerUserId is not null
GROUP BY
   a.OwnerUserId,
   t.TagName)
, userTagRank as (
 SELECT
    TagName,
   OwnerUserId,
    rank() over (partition by TagName order by score desc) rank
  FROM
    UserTagScores)
SELECT 
    TagName,
    Rank
FROM
    userTagRank 
WHERE 
    OwnerUserId = ##UserId##
ORDER BY
    TagName
  

  
   

Enter Parameters

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