WHERE 句で集計関数を正しく使用する方法
このエラー「グループ関数の無効な使用」は、集計関数を使用した場合に発生します。 (この場合は AVG() など) が WHERE 句で誤って使用されています。集計関数は値のグループを要約するものであり、WHERE 句で直接使用することはできません。
この問題を解決するには、次の 2 つのオプションがあります。
WHERE 句:
select * from staff where salary > (select avg(salary) from staff)
この例では、サブクエリ (select avg(salary) from Staff) は平均給与を計算し、それを一時変数に割り当てます。次に、WHERE 句は各スタッフ メンバーの給与をこの平均値と比較します。
GROUP BY で HAVING 句を使用する:
select deptid, COUNT(*) as TotalCount from staff group by deptid having COUNT(*) > 2
この例では、 HAVING 句は、deptid によるグループの条件を指定するために使用されます。ここの HAVING 句は、各部門内のスタッフ メンバーの数が 2 より大きいかどうかをチェックします。HAVING は、グループ化された行に対して計算を実行するために GROUP BY とともに使用されることに注意してください。
これらのメソッドのいずれかを使用すると、集計が確実に行われます。関数が適切に使用され、正しい結果が返されます。
以上がWHERE 句で集計関数を正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。