Q&A for professional and enthusiast programmers
WITH Top10Tags AS ( SELECT TagName, OwnerUserId, COUNT(Votes.Id) AS UpVotes 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 WHERE OwnerUserId = 340760 GROUP BY TagName, OwnerUserId ) SELECT STRING_AGG(case when seqnum <= 3 then TagName end, ', ') FROM ( SELECT TagName, OwnerUserId, UpVotes, dense_rank() over (partition by OwnerUserId order by UpVotes DESC) as seqnum FROM Top10Tags ) x --ORDER BY UpVotes DESC