sql >> データベース >  >> RDS >> Mysql

正規化されたテーブルから全体的に最も人気のあるタグを取得するにはどうすればよいですか?

    クエリに簡単な変更を加えることができます:

    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;
    

    おそらく、さまざまなIDはNULLです それらが適切でない場合。奇妙な理由で、特定の外部参照の3つのIDすべてに実際に値を格納した場合は、次のことができます。

    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. ダンプファイルMySQL5.6.10

    2. フェイルオーバー前またはフェイルオーバー後のスクリプトを使用したMySQLおよびMariaDBのレプリケーションフェイルオーバーの制御

    3. Access2016でデータベースからパスワードを削除する方法

    4. 職場での遭遇:特大のデータベースからスペースを取り戻す