スポンサーリンク

【応用情報技術者試験】SQL② グループ集計、副問い合わせ 実践問題10問(高難易度)

実践問題

解答&解説は第1問から第10問までを列挙しています。
まず問題を解いてから解答&解説を見ることを推奨します。

前提テーブル

社員表(社員)

社員ID氏名部署年齢給与
101田中営業25320
102鈴木開発31450
103佐藤営業28380
104高橋人事35500
105伊藤開発29420

(給与単位:万円)

第1問

部署ごとの社員数を求めるSQLとして正しいものはどれか。
前提テーブル(本ページの冒頭)

1
SELECT 部署, COUNT(*)
FROM 社員;

2
SELECT 部署, COUNT(*)
FROM 社員
GROUP BY 部署;

3
SELECT COUNT(部署)
FROM 社員;

4
SELECT 部署
FROM COUNT(*);

解答&解説はこちら


第2問

部署ごとの平均給与を求めるSQLとして正しいものはどれか。
前提テーブル(本ページの冒頭)

1
SELECT 部署, AVG(給与)
FROM 社員
GROUP BY 部署;

2
SELECT AVG(給与)
FROM 社員
WHERE 部署;

3
SELECT 部署, SUM(給与)
FROM 社員;

4
SELECT AVG(*)
FROM 社員
GROUP BY 給与;

解答&解説はこちら


第3問

部署ごとの最大給与を求めるSQLはどれか。
前提テーブル(本ページの冒頭)

1
SELECT 部署, MAX(給与)
FROM 社員
GROUP BY 部署;

2
SELECT MAX(部署)
FROM 社員;

3
SELECT 部署
FROM MAX(給与);

4
SELECT 給与
WHERE MAX;

解答&解説はこちら


第4問

HAVING句の説明として正しいものはどれか。

  1. 行を絞り込む
  2. 集計結果に条件を付ける
  3. テーブルを削除する
  4. 列を削除する

解答&解説はこちら


第5問

部署ごとの社員数が2人以上の部署を抽出するSQLはどれか。
前提テーブル(本ページの冒頭)

1
SELECT 部署, COUNT() FROM 社員 WHERE COUNT() >= 2
GROUP BY 部署;

2
SELECT 部署, COUNT() FROM 社員 GROUP BY 部署 HAVING COUNT() >= 2;

3
SELECT 部署
FROM 社員
WHERE 部署 >= 2;

4
SELECT COUNT(部署)
FROM 社員;

解答&解説はこちら


第6問

副問い合わせ(サブクエリ)の説明として適切なものはどれか。

  1. SQLの中に別のSQLを含む
  2. 複数テーブル削除
  3. CPU命令
  4. RAID制御

解答&解説はこちら


第7問

平均給与より高い社員を取得するSQLはどれか。
前提テーブル(本ページの冒頭)

1
SELECT *
FROM 社員
WHERE 給与 > AVG(給与);

2
SELECT *
FROM 社員
WHERE 給与 >
(SELECT AVG(給与) FROM 社員);

3
SELECT AVG(給与) FROM 社員;

4
SELECT *
FROM AVG(給与);

解答&解説はこちら


第8問

相関副問い合わせの特徴として適切なものはどれか。

  1. 外側クエリと内側クエリが独立
  2. 内側クエリが外側の値を参照する
  3. SQLが不要になる
  4. 常に高速化される

解答&解説はこちら


第9問

IN句を使った副問い合わせの例として正しいものはどれか。
前提テーブル(本ページの冒頭)

1
SELECT *
FROM 社員
WHERE 部署 IN (SELECT 部署 FROM 部署表);

2
SELECT IN 部署;

3
SELECT *
FROM 社員
IN 部署;

4
SELECT 部署
FROM IN;

解答&解説はこちら


第10問

給与が「全社員の中で最大給与」と等しい社員を取得するSQLはどれか。
前提テーブル(本ページの冒頭)

1
SELECT *
FROM 社員
WHERE 給与 = MAX(給与);

2
SELECT *
FROM 社員
WHERE 給与 = MAX(給与);

3
SELECT MAX(*)
FROM 社員;

4
SELECT *
FROM 社員
ORDER BY MAX;

解答&解説はこちら


解答&解説

解答:第1問

正解:2

GROUP BY 部署集計関数使用時はGROUP BY必須。

問題へ戻る


解答:第2問

正解:1

AVG(給与)

部署単位平均。

問題へ戻る


解答:第3問

正解:1

MAX(給与)

最大値集計。

問題へ戻る


解答:第4問

正解:2

HAVINGはグループ条件。

問題へ戻る


解答:第5問

正解:2

HAVING COUNT(*) >= 2

WHEREでは不可。

問題へ戻る


解答:第6問

正解:1

副問い合わせ:

SELECT … (SELECT …)

問題へ戻る


解答:第7問

正解:2

正しい構文:

給与 > (SELECT AVG(給与) …)

問題へ戻る


解答:第8問

正解:2

相関副問い合わせ:

外側値参照あり。

問題へ戻る


解答:第9問

正解:1

IN句:

WHERE col IN (subquery)

問題へ戻る


解答:第10問

正解:2

最大値副問い合わせ:

WHERE 給与 = (SELECT MAX(給与) …)

問題へ戻る


知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…

まずは無料でキャリア相談

コメント