Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ FROM句内でのインナーサブクエリの使用 | ネストされたサブクエリ
/
中級SQL
セクション 2.  3
single

single

bookFROM句内でのインナーサブクエリの使用

メニューを表示するにはスワイプしてください

内部サブクエリは、外部クエリで操作を行うためのテーブルを作成。

このことから、FROMセクション内で内部クエリを使用し、このテーブルからデータを選択できることが分かる。

例えば、employees特定の値以上salaryを扱う必要がある場合を考える。ただし、WHERE句の代わりに内部クエリを使用する。

123456
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
copy

内部サブクエリを使って新しいテーブルを作成し、そのテーブルを使って情報を取得できる。

Note
注意

このようなテーブルの場合、エイリアスの指定が必須。

この方法はどのような場面で役立つか?

このようなクエリは非常に可読性が高いため、場合によっては WHERE 句の代わりとして利用可能。

さらに、テーブル全体ではなく絞り込んだ一部のみを扱いたい場合、FROM 節内の内部サブクエリが非常に便利。

タスク

スワイプしてコーディングを開始

あなたの課題は、budget テーブルからすべての管理部門平均予算department 列)を取得することです。FROM 節で内部サブクエリを使用し、管理部門タイプのみを抽出してください。また、このテーブルには manager_departments というエイリアスを付与してください。これにより、課題の判定が正しく行われます。

返却される結果は、average_budget という1つの列のみです。これは集約関数 AVG() のエイリアスです。

この課題は WHERE 句を使っても解決できますが、ここではこの構文の練習のためにネストされたクエリを使用します。これは今後より複雑な問題を解く際に役立ちます。

簡単な手順

  • budget 列の平均値を取得する
  • その列に average_budget というエイリアスを付与する
  • FROM 節でネストされたクエリを書く
  • ネストされたクエリ内で department テーブルのすべての列を選択する
  • ネストされたクエリ内で WHERE 句を使い、type = 'manager' という条件を指定する
  • ネストされたクエリに manager_departments というエイリアスを付与する

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  3
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt