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

最も人気のあるカテゴリを見つけるためのSQL

    これを試して。カテゴリの名前でgroupbyを使用します。作成したat句を指定どおりにコメントアウトしました。使用する場合は、コメントを解除できます。

     SELECT c.name, SUM(ABS(v.item_id)) 
     FROM categories c,items i, votes v
     WHERE c.name = i.name
        AND i.item_id=v.item_id
        --AND v.created_at > #{1.week.ago}
     GROUP BY c.name 
     ORDER BY SUM(ABS(v.item_id)) DESC LIMIT 5;
    

    JOINキーワードを使用せず、代わりにWHERE句のみを使用してクエリの結果をフィルタリングしたことに気付くでしょう。これは理解しやすいかもしれません。 JOINについて詳しく知りたい場合は、チュートリアルをご覧ください

    ここにも、SQLエイリアスに関するチュートリアルがあります (AS句)。実際、このサイトには、プラットフォームに依存しないさまざまなSQLトピックに関するチュートリアルがたくさんあります。

    編集: コメントに従って修正され、abs関数が追加されました。



    1. GROUP BYを使用すると、MYSQLに誤った行が表示される

    2. Oracleで内部結合を使用して更新する方法

    3. WHERE句でCASEを使用する

    4. OUTパラメータを持つ関数から戻る