sql >> Database >  >> RDS >> Mysql

Hoe haal je de algemeen meest populaire tags uit genormaliseerde tabellen?

U kunt uw zoekopdracht eenvoudig wijzigen:

SELECT t.id, t.tag, COUNT(*) AS cnt
FROM tags_xref xrf INNER JOIN
     tags t
     ON xrf.tag_id = t.id
GROUP BY t.id, t.tag
ORDER BY COUNT(*) DESC
LIMIT 20;

Vermoedelijk zijn de verschillende id's NULL wanneer ze niet geschikt zijn. Als je om de een of andere vreemde reden waarden hebt opgeslagen in alle drie de ID's voor een gegeven xref, kun je het volgende doen:

SELECT t.id, t.tag,
       (COUNT(story_id) + COUNT(discussion_id) + COUNT(article_id) ) AS cnt
FROM tags_xref xrf INNER JOIN
     tags t
     ON xrf.tag_id = t.id
GROUP BY t.id, t.tag
ORDER BY cnt DESC
LIMIT 20;



  1. MySQL INSERT en SELECT Prioriteitsvolgorde

  2. Hoe rijwaarden converteren naar kolommen met dynamische kolommentelling?

  3. Hoe installeer ik Oracle Instant Client op een Mac?

  4. De volgorde van een SQL Select-instructie zonder Order By-clausule