助け合いフォーラム

Oracle DB

Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26893
問題を開く
Oracle Databaseで使用できるグループ関数とその説明として、正しい組合せはどれですか(3つ選択して下さい)。

正解

STDDEV:標準偏差を返す

VARIANCE:分散を返す

AVG:平均値を返す

解説

Oracle Databaseで使用できる主なグループ関数は次のとおりです。



以上より、
・STDDEV:標準偏差を返す
・VARIANCE:分散を返す
・AVG:平均値を返す
が正解となります。

その他の選択肢については上表をご確認ください。

参考

グループ関数は、複数行のデータをグループ化して、集計処理を行った結果をグループ毎に1つだけ返す関数です。
集計関数(集計ファンクション)や集約関数と呼ばれることもあります。



グループ関数はSELECT句、HAVING句、ORDER BY句で使用できます。WHERE句では使用できない事に注意して下さい。
書式は以下の通りです。

 グループ関数名([DISTINCT | ALL] {列名 | 列名を含む式})

DISTINCT/ALLオプションは、グループ内に重複した値がある場合の処理方法を指定するオプションです。
 ・DISTINCT:重複した値を除いて処理する
 ・ALL:全ての値を処理する(デフォルト値)

 
 
SQLを表示
SELECT salary
FROM employees
WHERE department_id = 1 AND salary IS NOT NULL;

SELECT AVG(salary), AVG(DISTINCT salary)
FROM employees
WHERE department_id = 1 AND salary IS NOT NULL;


グループ関数が集計する値にNULL値が含まれている場合は、NULL値を無視して集計を行います(COUNT関数に*(アスタリスク)を指定した場合を除く)。
例えば、グループ関数で3件のデータを集計する場合に、集計するデータが400000,500000,NULLだったとします。NULL値は無視されますので、グループ関数は400000,500000の2件の集計結果を返します。NULL値を集計に含まない点に注意して下さい。


 
SQLを表示
SELECT employee_id, salary
FROM employees
WHERE department_id = 5;

SELECT AVG(salary)
FROM employees
WHERE department_id = 5;


グループ関数では、引数に別の関数を指定することもできます。関数の引数に別の関数を指定することを「関数のネスト」と呼びますが、グループ関数は2レベルまでネストすることができます。(但し、GROUP BY句を指定した場合に限ります。)


 
SQLを表示
SELECT MIN(AVG(salary))
FROM employees
GROUP BY department_id;

SELECT MAX(MIN(AVG(salary)))
FROM employees
GROUP BY department_id;


主なグループ関数は次のとおりです。

上に戻る

LISTAGG

投稿日 2026/03/09

LISTAGGが正解の選択肢からはずされているのですが、解説の表を見たところLISTAGGもOracle Databaseでグループ関数で使えるものの中にありました。これはLISTAGGも正解ということでいいのでしょうか。
どうなのでしょうか。
考えすぎなのでしょうか。
諦めたらそこで試合終了なのでしょうか。
解説の方、よろしくお願いします。

2026/03/09 07:42

設問は

Oracle Databaseで使用できるグループ関数とその説明として、正しい組合せはどれですか(3つ選択して下さい)。

ですので、LISTAGG は「グループ関数」ではあるが 「説明が正しくないので不正解」 というだけですよね。

諦めたらそこで試合終了なのでしょうか。

問題文を最後まで読むことを諦めなければ大丈夫かと思います (^^;


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?