SQL Group Byグループの使用


グループ計算関数:単行関数に対して、複数行関数とも呼ばれ、その入力は複数行からなる行セット(この行セットは1枚のテーブルのすべての行であってもよいし、ある次元に従ってグループ化された行であってもよい)であり、出力は1つの値である.例えば、私たちがよく見ているグループ計算の需要:ある部門の給与の合計、給与の平均値、給与の最大値などを求めます.グループ化関数には、次のものがあります.
max(最大値)、min(最小値)、avg(平均値)、count(統計数)、sum(加算)、stddev(標準差)、variance(分散)
関数#カンスウ#
さぎょう
関数#カンスウ#
さぎょう
max
最大値
min
最小値
sum
和を求める
count
統計数量
stddev
ひょうじゅんさ
variance
ぶんさん
avg
へいきんち
メモ:min、maxは任意のデータ型に使用できますが、avg、sum、stddev、varianceは数値型フィールドにのみ適用されます.count(expr)は空の行を統計することはできませんが、count(*)はすべての行を統計することができます.
1、部門番号(department_id)のような一般的なフィールド名でグループ計算関数を選択する場合、groupby関数を使用する必要があります.また、一般的なフィールドごとにgroupbyでグループ化する必要があります.そうしないと、実行時にエラーが発生します(ORA-00979:GROUP BY式ではありません).
2、条件限定(where)が必要な場合は、groupbyを条件限定の後ろに置いてください.そうしないと、SQLコマンドが正しく終了していないことを示します.
3、使用する条件の限定でグループ計算関数が必要な場合はHAVINGフィールドで行い、WHEREは使用できません.
SELECT department_id,
       job_id,
       AVG(salary)
  FROM employees
 WHERE department_id > 50
 GROUP BY department_id,
          job_id
HAVING AVG(salary) > 8000;