On META, as well as other Stack sites, there appear to be a large number of tags that have no usage guidance excerpt. (The tag wiki is often left blank, too, but the excerpt is of more importance.)

Currently, tags on most Stack sites can be sorted by the following criteria:

  • popular
  • name
  • new

In addition, when browsing the list of tags, tags and tag synonyms are presented together with no obvious way to differentiate between the two (after a little time editing, you can learn to spot the difference between most of them).

Many of us enjoy organizing, improving, and curating.

Is there any way to sort, or to browse a list of incomplete tag excerpts?


2 Answers 2


Yes, this is possible with SEDE. This query tells me there are currently ±13800 tags on Stack Overflow waiting for a tag excerpt. It shows the most frequently used tags first, the top hit is angular2-services but it's usage is under discussion.

For reference, here is the complete query.

SELECT t.TagName, COUNT(*) AS 'Number of posts'
  FROM Tags AS t
  INNER JOIN PostTags AS pt ON pt.TagId = t.Id
  WHERE t.ExcerptPostId IS NULL
  GROUP BY t.TagName

Note that SEDE is updated once every week, on Sunday morning. So it might be that new excerpts have already been created in the meantime.


After using Glorfindel's excellent answer for several months, a few improvements have been added.

After some use, it became evident that ExcerptPostId and WikiPostId might be non-null, but the body of the Excerpt or Wiki would still be blank. This could probably be caused by a number of things. (In my case, a few of my tag edits were rejected, but the tag in question was still removed from the result set even after the weekly SEDE data update.)

The improved query takes into account null IDs, an empty body, and removes tag synonyms.

For reference, here is the complete query: Tags Without Excerpt or Wiki

SELECT a.TagName, a.CountPosts AS 'Number of Posts', a.Excerpt, a.Wiki
    FROM (
        SELECT c.TagName, c.CountPosts,
               CASE WHEN (c.ExcerptPostId IS NULL OR LEN(LTRIM(RTRIM(e.Body))) = 0) THEN 'N' ELSE 'Y' END AS 'HasExcerpt',
               CASE WHEN (c.WikiPostId    IS NULL OR LEN(LTRIM(RTRIM(w.Body))) = 0) THEN 'N' ELSE 'Y' END AS 'HasWiki',
               e.Body AS 'Excerpt', w.Body AS 'Wiki'
            FROM (
                SELECT t.TagName, t.ExcerptPostId, t.WikiPostId,
                       COUNT(*) AS CountPosts
                    FROM Tags t
                         LEFT OUTER JOIN TagSynonyms s ON (t.TagName = s.SourceTagName)
                         INNER JOIN PostTags p ON (p.TagId = t.Id)
                    WHERE s.ApprovalDate IS NULL
                    GROUP BY t.TagName, t.ExcerptPostId, t.WikiPostId
                ) c
                LEFT OUTER JOIN Posts e ON (c.ExcerptPostId = e.Id)
                LEFT OUTER JOIN Posts w ON (c.WikiPostId = w.Id)
            WHERE c.ExcerptPostId IS NULL OR c.WikiPostId IS NULL
                  OR LEN(LTRIM(RTRIM(e.Body))) = 0
                  OR LEN(LTRIM(RTRIM(w.Body))) = 0
        ) a
    ORDER BY a.HasExcerpt ASC, a.HasWiki DESC,
             a.CountPosts DESC, a.TagName ASC

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .