Oracle SQL Bronze web問題集【グループ関数】
Sal
sql oracleマスターbronzeのweb問題集です。MINMAX関数やCOUNT関数の隠された性質についても解説してあります。

Oracle SQL Bronze web問題集【グループ関数】

  1. MIN MAX関数
  2. AVGグループ関数
  3. グループ関数の概要
  4. グループ関数が使用できる句
  5. order byとavg関数
  6. 列別名の使用
  7. 句の並び順
  8. グループ関数の説明
  9. listagg
## MIN MAX関数
文字列に対して有効なグループ関数を3つ選べ A: count B: AVG C: SUM D: MIN E: MAX

答え

A: count、D: MIN、E: MAX

MIN,MAXは文字数を見て最もXXなものを返す。

## AVGグループ関数
次の表のあるカラム (NUMBER(10)型)があるとする。
40000, NULL, 40000, 0, 20000
この表に対する次のクエリの結果はいくつか

SELECT AVG(歩合給) FROM 社員表;

答え

A: 2500

ポイント:NULLはグループ関数において、ないものとして処理される

よって、NULL以外の4つで合計10000を割った2500が答え。

## グループ関数の概要
次ん選択肢で正しいものを全て選べ A: グループ関数は行グループごとに結果を一つ返す B: グループ関数の引数ではDISTINCTは使用できない C: グループ関数でグループがNULLの場合は0を返す D: DISTONCTとALLを使用しない場合はALLが適用される

答え

D: DISTONCTとALLを使用しない場合はALLが適用される

A: グループ関数は行グループごとに結果を一つ返す

Cについては、グループ関数でグループがNULLの場合は無視される

## グループ関数が使用できる句
グループ関数が使用できる句を全て選べ。 A: select B: from C: where D: group by E: having f: order by

答え

A: select, E: having, f: order by

group byでは使えないことに注意

## order byとavg関数
部門ごとの平均給料を出し、並び替えるクエリとしてただしものを選べ A: select deptno, avg(sal) from employees group by deptno B: select deptno, avg(sal) from employees; C: select deptno, avg(sal) from employees group by deptno; D: select deptno, avg(sal) from employees group by deptno order by deptno;

答え

D: select deptno, avg(sal) from employees group by deptno order by deptno;

deptnoでgroup byを行うこと

order byでdeptnoを並び替えること

最後にavg(sal)で平均を割り出すこと を把握することが大事。

## 列別名の使用
次のうち正しいものを選べ A: order byでは列別名の指定ができるが、group byでは列別名の指定ができない B: order byもgroup byも列別名の指定ができる C: order byでは列別名の指定ができないが、group byでは列別名の指定ができる D: order byもgropu byも列別名の指定ができない

答え

A: order byでは列別名の指定ができるが、group byでは列別名の指定ができない

group byでは正式な指定しか受け付けない

order byでは列別名の指定も、selectの一による指定もできる。

## 句の並び順
正しいい並び順を選べ A: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY B: SELECT, FROM, WHERE, GROUP BY, ORDER BY, HAVING C: SELECT, FROM, WHERE, HAVING, GROUP BY, ORDER BY

答え

A: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY

C: SELECT, FROM, WHERE, HAVING, GROUP BY, ORDER BY

group byとhavingは入れ替えることが可能

## グループ関数の説明
間違えた説明を選べ A: グループ関数はいくらでもネストできる B: グループ関数の引数には関数を指定できる C: where句にグループ関数は指定できない D: selectにgroup関数を指定する場合、group byで指定されていない場合は一緒にselectできない。

答え

A: グループ関数はいくらでもネストできる

B-Dは全て正しい

グループ関数は最大2回までネストできる。

## listagg
次のクエリの実行結果を選べ

select 
    deptno,count(*),
    Listagg(ename) group within(order by sal DESC)
from employees
group by deptno,
order by 1;
A: デリミタがないのでエラーになる B: 社員ごとの名前と給料が繋がった状態で一列に出力される C: 部署コードごとに社員の名前と給料が繋がった状態で一列に出力される D: groupとwithinが逆なのでエラーになる

答え

D: groupとwithinが逆なのでエラーになる

within group(order by sal DESC)が正しい順番

title:Oracle SQL Bronze web問題集【グループ関数】 description:oracleマスターbronzeのweb問題集です。MINMAX関数やCOUNT関数の隠された性質についても解説してあります。 img:https://s3-ap-northeast-1.amazonaws.com/i.schoo/images/class/600x260/3456.jpg category_script:page_name.startswith("50")