Oracle Master

グループ関数の注意点

投稿日:2009年8月8日 更新日:

MIN関数、MAX関数、AVG関数、SUM関数などのグループ関数では、NULL値は無視されますが、COUNT関数の場合、COUNT(*)と指定すると、NULL値もカウントされる。ただし、COUNT(列名)とすると、指定した列にあるNULL値は無視される。

 

グループ関数を使用している場合、SELECT句にあるグループ関数でない列は、必ずGROUP BYに指定する必要がある。

例:

SELECT job_type, AVG(salary) FROM emp_table GROUP BY job_type;

 

また、WHERE句にはグループ関数で条件を記載することができない。

エラーの例:

SELECT job_type, AVG(salary) FROM emp_table

WHERE AVG(salary) > 1000 GROUP BY job_type;

正しい例:

SELECT job_type, AVG(salary) FROM emp_table

HAVING AVG(salary) > 1000 GROUP BY job_type;

広告

広告

-Oracle Master


comment

関連記事

no image

WHERE句では列別名が使用できない

WHERE句では列別名が使用できない。列別名を使用できるのは、ORDER BY句のみです。 例: SELECT emp_id AS ID, emp_name AS NAME FROM emp_tabl …

no image

Windows上にインストールしたOracleの優先資格証明の設定ができない (11g)

Enterprise Managerで優先資格証明を設定しようとしましたが、「ユーザーoracleとしてのServer01への接続に失敗しました。」とエラーメッセージが表示されて、正常に優先資格証明を …

no image

リテラル文字とは?

Oracleでのリテラル文字とは、SELECT句に含まれる、 ・文字 ・数字 ・日付 のことを言う。文字と日付のリテラル文字はシングルクォーテーション(例:’文字’)で囲む必要 …

no image

Linux – OSユーザ・グループの作成(インストール事前準備)

Oracleをインストールする前の事前準備の一つとして、Oracle用のOSユーザ・グループを作成する必要がある。 Oracleインベントリグループ(例:oinstall) データベースグループ(例: …

no image

集合演算子の評価順序

集合演算子には、UNION、UNION ALL、MINUS、INTERSECTがあるが、優先順位はない。基本的には集合演算子は左から右に評価される。ただし、SQL文を見易くし、また将来的なSQLの仕様 …

広告

転職