Q&A for designers and implementers of computer programming languages
---the query looks at the first revisiont with the given tag ---mostly that could correspond to tag creator ---in some cases the post where the tag was created might have been deleted ; with tagshistory_cte AS ( SELECT Id AS phid, replace(value,'>','') TagName FROM PostHistory CROSS APPLY STRING_SPLIT(Text,'<') Where PostHistoryTypeId in (3,6,9) and len(value) > 0 ), tagsfirst_cte AS ( SELECT tagname, MIN(phid) AS firstid FROM tagshistory_cte GROUP BY tagname ) SELECT t.tagname, ph.CreationDate, ph.UserId AS [User Link], ph.UserDisplayName, url = 'site://posts/' + CAST(ph.PostId AS varchar)+'/revisions', ph.PostId AS [Post Link] FROM tagsfirst_cte t INNER JOIN PostHistory ph ON ph.id=t.firstid LEFT OUTER JOIN Tags ON t.TagName=Tags.TagName WHERE (Tags.Id IS NULL) ORDER BY ph.id DESC