[
{
"id": 923,
"tag": "data",
"description": "",
"total_entry": 1,
"total_blogmark": 18,
"total_quotation": 2,
"is_exact_match": 1,
"count": 21
},
{
"id": 5110,
"tag": "datasette",
"description": "[Datasette](https://datasette.io/) is an open source tool for exploring and publishing data.",
"total_entry": 232,
"total_blogmark": 179,
"total_quotation": 2,
"is_exact_match": 0,
"count": 413
},
{
"id": 926,
"tag": "databases",
"description": "",
"total_entry": 23,
"total_blogmark": 69,
"total_quotation": 7,
"is_exact_match": 0,
"count": 99
},
{
"id": 925,
"tag": "data-journalism",
"description": "",
"total_entry": 18,
"total_blogmark": 26,
"total_quotation": 0,
"is_exact_match": 0,
"count": 44
},
{
"id": 5222,
"tag": "datasette-cloud",
"description": "The SaaS hosted version of Datasette, at [datasette.cloud](https://www.datasette.cloud/)",
"total_entry": 32,
"total_blogmark": 11,
"total_quotation": 0,
"is_exact_match": 0,
"count": 43
}
]
SELECT "blog_tag"."id", "blog_tag"."tag", "blog_tag"."description", (SELECT COUNT(DISTINCT U1."entry_id") FILTER (WHERE (NOT U2."is_draft")) AS "count" FROM "blog_tag" U0 LEFT OUTER JOIN "blog_entry_tags" U1 ON (U0."id" = U1."tag_id") LEFT OUTER JOIN "blog_entry" U2 ON (U1."entry_id" = U2."id") WHERE U0."id" = ("blog_tag"."id") GROUP BY U0."id") AS "total_entry", (SELECT COUNT(DISTINCT U1."blogmark_id") FILTER (WHERE (NOT U2."is_draft")) AS "count" FROM "blog_tag" U0 LEFT OUTER JOIN "blog_blogmark_tags" U1 ON (U0."id" = U1."tag_id") LEFT OUTER JOIN "blog_blogmark" U2 ON (U1."blogmark_id" = U2."id") WHERE U0."id" = ("blog_tag"."id") GROUP BY U0."id") AS "total_blogmark", (SELECT COUNT(DISTINCT U1."quotation_id") FILTER (WHERE (NOT U2."is_draft")) AS "count" FROM "blog_tag" U0 LEFT OUTER JOIN "blog_quotation_tags" U1 ON (U0."id" = U1."tag_id") LEFT OUTER JOIN "blog_quotation" U2 ON (U1."quotation_id" = U2."id") WHERE U0."id" = ("blog_tag"."id") GROUP BY U0."id") AS "total_quotation", CASE WHEN UPPER("blog_tag"."tag"::text) = UPPER(data) THEN 1 ELSE 0 END AS "is_exact_match", (((SELECT COUNT(DISTINCT U1."entry_id") FILTER (WHERE (NOT U2."is_draft")) AS "count" FROM "blog_tag" U0 LEFT OUTER JOIN "blog_entry_tags" U1 ON (U0."id" = U1."tag_id") LEFT OUTER JOIN "blog_entry" U2 ON (U1."entry_id" = U2."id") WHERE U0."id" = ("blog_tag"."id") GROUP BY U0."id") + (SELECT COUNT(DISTINCT U1."blogmark_id") FILTER (WHERE (NOT U2."is_draft")) AS "count" FROM "blog_tag" U0 LEFT OUTER JOIN "blog_blogmark_tags" U1 ON (U0."id" = U1."tag_id") LEFT OUTER JOIN "blog_blogmark" U2 ON (U1."blogmark_id" = U2."id") WHERE U0."id" = ("blog_tag"."id") GROUP BY U0."id")) + (SELECT COUNT(DISTINCT U1."quotation_id") FILTER (WHERE (NOT U2."is_draft")) AS "count" FROM "blog_tag" U0 LEFT OUTER JOIN "blog_quotation_tags" U1 ON (U0."id" = U1."tag_id") LEFT OUTER JOIN "blog_quotation" U2 ON (U1."quotation_id" = U2."id") WHERE U0."id" = ("blog_tag"."id") GROUP BY U0."id")) AS "count" FROM "blog_tag" WHERE UPPER("blog_tag"."tag"::text) LIKE UPPER(%data%) ORDER BY 7 DESC, 8 DESC, LENGTH("blog_tag"."tag") ASC LIMIT 5