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

索引を作成する条件

表に索引を作成すると、特定の列の検索処理の速度が向上する。しかし、データの挿入(INSERT)、更新(UPDATE)、削除(DELETE)では、索引のメンテナンスがバックグラウンドで発生するため、負荷 …

no image

リテラル文字とは?

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

no image

Linux – Oracle Universal Installerが文字化けする

Linux環境でOracle Universal Installerが文字化けする場合、以下の通りに対応する。 # LANG=C # export LANG このようにすることで、OUIは英語表記にな …

no image

SQL*Plusの画面の調整 – 文字が途中で折り返してしまう

SQL*Plusで列の長い表をSELECTしたら、画面の右端で表が折り返してしまいます。SQL*Plus画面の幅を広くしてみましたが、それにも関らず、画面の途中で表が折り返してしまいます。その場合は、 …

no image

順序(SEQUENCE)に関する注意点

順序は以下のように作成する。 CREATE SEQUENCE seq_no START WITH 100 MAXVALUE 200 CYCLE; 直近に採番された順序を取得するには、順序名.CURRV …

広告

転職