1. ホーム
  2. sql

[解決済み] エラー 1111 (HY000)。グループ関数の使用は無効です

2022-02-07 04:50:04

質問

次の属性を持つstaffテーブルがあるとする。

EC,名前,コード,DOB,給与

平均給与以上の収入を得ているスタッフをリストアップしてください。

私の解決策

select* from staff where salary > avg(salary);

何が問題なのか?

解決方法は?

集計対象が WHERE 節に含まれるサブクエリでなければなりません。 HAVING 節または選択リストで、集計されるカラムが外部参照である場合です。

を使用した例 WHERE 節があります。

select *
from staff 
where salary > (select avg(salary) from staff)

を使用した例 HAVING 節があります。

select deptid,COUNT(*) as TotalCount
from staff
group by deptid
having count(*) > 2

Having 節は、グループまたは集計の検索条件を指定する。 HAVING とは併用できません。 SELECT ステートメントを使用します。 HAVING は、通常 GROUP BY 節があります。このとき GROUP BY を使用しない。 HAVING のような振る舞いをします。 WHERE 節があります。