Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Використання Внутрішніх Підзапитів у Секції FROM | Вкладені Підзапити
Розширений Рівень SQL

bookВикористання Внутрішніх Підзапитів у Секції FROM

Внутрішній підзапит створює таблицю, з якою ми потім виконуємо операції у зовнішньому запиті.

З цього можна зробити висновок, що ми також можемо використовувати внутрішній запит у секції FROM, щоб вибрати щось із цієї таблиці.

Розглянемо приклад, коли потрібно працювати з employees, у яких salary перевищує певне значення. Але замість використання WHERE ми застосуємо внутрішній запит:

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

Ми створили нову таблицю за допомогою внутрішнього підзапиту, з якою можемо працювати та отримувати інформацію.

Примітка

Зверніть увагу, що для такої таблиці обов’язково потрібно задати псевдонім.

Коли це може бути корисно?

Такий запит є дуже читабельним; іноді він може замінити оператор WHERE.

Крім того, якщо потрібно працювати не з усією таблицею, а лише з відфільтрованою частиною, вкладений підзапит у секції FROM може бути надзвичайно зручним.

Завдання

Swipe to start coding

Ваше завдання — отримати середній бюджет (стовпець budget) для всіх управлінських відділів з таблиці department. Використайте внутрішній підзапит у секції FROM, щоб відібрати лише відділи з типом 'manager'. Також використайте псевдонім manager_departments для цієї таблиці, щоб завдання було перевірено коректно.

Відповідь повинна містити лише один стовпець — average_budget. Це псевдонім для агрегатної функції AVG().

Примітка

Це завдання також можна виконати за допомогою оператора WHERE, але тут використовується вкладений запит для практики цього синтаксису, що стане у пригоді для розв'язання складніших задач у майбутньому.

Коротка інструкція

  • Отримайте середнє значення стовпця budget.
  • Присвойте цьому стовпцю псевдонім average_budget.
  • У секції FROM напишіть вкладений запит.
  • У вкладеному запиті виберіть усі стовпці з таблиці department.
  • У вкладеному запиті використайте оператор WHERE з умовою type = 'manager'.
  • Присвойте вкладеному запиту псевдонім manager_departments.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain why we need to use an alias for the inner subquery?

When should I use an inner subquery instead of a WHERE clause?

Can you give more examples of using inner subqueries in SQL?

close

Awesome!

Completion rate improved to 4

bookВикористання Внутрішніх Підзапитів у Секції FROM

Свайпніть щоб показати меню

Внутрішній підзапит створює таблицю, з якою ми потім виконуємо операції у зовнішньому запиті.

З цього можна зробити висновок, що ми також можемо використовувати внутрішній запит у секції FROM, щоб вибрати щось із цієї таблиці.

Розглянемо приклад, коли потрібно працювати з employees, у яких salary перевищує певне значення. Але замість використання WHERE ми застосуємо внутрішній запит:

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

Ми створили нову таблицю за допомогою внутрішнього підзапиту, з якою можемо працювати та отримувати інформацію.

Примітка

Зверніть увагу, що для такої таблиці обов’язково потрібно задати псевдонім.

Коли це може бути корисно?

Такий запит є дуже читабельним; іноді він може замінити оператор WHERE.

Крім того, якщо потрібно працювати не з усією таблицею, а лише з відфільтрованою частиною, вкладений підзапит у секції FROM може бути надзвичайно зручним.

Завдання

Swipe to start coding

Ваше завдання — отримати середній бюджет (стовпець budget) для всіх управлінських відділів з таблиці department. Використайте внутрішній підзапит у секції FROM, щоб відібрати лише відділи з типом 'manager'. Також використайте псевдонім manager_departments для цієї таблиці, щоб завдання було перевірено коректно.

Відповідь повинна містити лише один стовпець — average_budget. Це псевдонім для агрегатної функції AVG().

Примітка

Це завдання також можна виконати за допомогою оператора WHERE, але тут використовується вкладений запит для практики цього синтаксису, що стане у пригоді для розв'язання складніших задач у майбутньому.

Коротка інструкція

  • Отримайте середнє значення стовпця budget.
  • Присвойте цьому стовпцю псевдонім average_budget.
  • У секції FROM напишіть вкладений запит.
  • У вкладеному запиті виберіть усі стовпці з таблиці department.
  • У вкладеному запиті використайте оператор WHERE з умовою type = 'manager'.
  • Присвойте вкладеному запиту псевдонім manager_departments.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

close

Awesome!

Completion rate improved to 4
Секція 2. Розділ 3
single

single

some-alt