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

SQL-SUM()のWHERE条件

    これは、HAVING句を使用して実行できます:

    SELECT e.*, rt.review_id, (SUM(vt.percent) / COUNT(vt.percent)) AS rating 
    FROM catalog_product_entity AS e 
    INNER JOIN rating_option_vote AS vt ON e.review_id = vt.review_id 
    GROUP BY vt.review_id
    HAVING (SUM(vt.percent) / COUNT(vt.percent)) >= 0
    ORDER BY (SUM(vt.percent) / COUNT(vt.percent)) ASC
    

    注:ORDER BYを配置する場所を追加しました ステートメント

    クエリオプティマイザも平均を複数回計算しないようにする必要があるため、ここでは問題になりません。

    @jagraの回答で述べたように、AVG()を使用できるはずです。 SUM() / COUNT()の代わりに



    1. OVER関数とPARTITIONBY関数を使用したデータのグループ化

    2. 修正:MariaDBの「information_schemaの不明なテーブル「ロケール」」

    3. バックグラウンドスレッドでSQLiteクエリを非同期で実行するにはどうすればよいですか?

    4. 管理者–Linux用の高度なWebベースのデータベース管理ツール