実践問題
解答&解説は第1問から第10問までを列挙しています。
まず問題を解いてから解答&解説を見ることを推奨します。
前提テーブル
社員表(社員)
| 社員ID | 氏名 | 部署 | 年齢 | 給与 |
|---|---|---|---|---|
| 101 | 田中 | 営業 | 25 | 320 |
| 102 | 鈴木 | 開発 | 31 | 450 |
| 103 | 佐藤 | 営業 | 28 | 380 |
| 104 | 高橋 | 人事 | 35 | 500 |
| 105 | 伊藤 | 開発 | 29 | 420 |
(給与単位:万円)
第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句の説明として正しいものはどれか。
- 行を絞り込む
- 集計結果に条件を付ける
- テーブルを削除する
- 列を削除する
解答&解説はこちら
第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問
副問い合わせ(サブクエリ)の説明として適切なものはどれか。
- SQLの中に別のSQLを含む
- 複数テーブル削除
- CPU命令
- RAID制御
解答&解説はこちら
第7問
平均給与より高い社員を取得するSQLはどれか。
>前提テーブル(本ページの冒頭)
1
SELECT *
FROM 社員
WHERE 給与 > AVG(給与);
2
SELECT *
FROM 社員
WHERE 給与 >
(SELECT AVG(給与) FROM 社員);
3
SELECT AVG(給与) FROM 社員;
4
SELECT *
FROM AVG(給与);
解答&解説はこちら
第8問
相関副問い合わせの特徴として適切なものはどれか。
- 外側クエリと内側クエリが独立
- 内側クエリが外側の値を参照する
- SQLが不要になる
- 常に高速化される
解答&解説はこちら
第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(給与) …)
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

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

コメント