Course Content
Intermediate SQL
Intermediate SQL
Using Inner Subqueries in the FROM Section
As you may have understood from previous chapters, an inner subquery creates a table with which we then perform operations in the outer query.
From this, we can conclude that we can also use an inner query within the FROM
section to select something from this table.
Let's consider an example where we need to work with employees
whose salary
is above a certain value. But instead of a WHERE
clause, we will use an inner query:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
We've created a new table using an inner subquery with which we can work and gather information.
Note
Notice that for such a table, it's essential to provide an alias.
When might this be useful?
Such a query is highly readable; sometimes, it can replace a WHERE
clause.
Additionally, if you need to work not with the entire table but only with a filtered part, an inner subquery within the FROM
section can be extremely handy.
Now, let's move on to a small task!
In this task, we'll be working with the department
table.
Let me remind you what it looks like:
Task
Your task is to retrieve the average budget (budget
column) for all managerial departments from the department
table. Use an inner subquery in the FROM
section to filter only the managerial type of department. Also, use the alias manager_departments
for this table so the task is checked correctly.
Note:
The response should have only one column,
average_budget
. This is an alias for the aggregate functionAVG()
.
Task
Your task is to retrieve the average budget (budget
column) for all managerial departments from the department
table. Use an inner subquery in the FROM
section to filter only the managerial type of department. Also, use the alias manager_departments
for this table so the task is checked correctly.
Note:
The response should have only one column,
average_budget
. This is an alias for the aggregate functionAVG()
.
Note
This task could also be done using a
WHERE
clause, but we use a nested query here to practice this syntax, which will be useful for solving more complex problems in the future.
Everything was clear?
Using Inner Subqueries in the FROM Section
As you may have understood from previous chapters, an inner subquery creates a table with which we then perform operations in the outer query.
From this, we can conclude that we can also use an inner query within the FROM
section to select something from this table.
Let's consider an example where we need to work with employees
whose salary
is above a certain value. But instead of a WHERE
clause, we will use an inner query:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
We've created a new table using an inner subquery with which we can work and gather information.
Note
Notice that for such a table, it's essential to provide an alias.
When might this be useful?
Such a query is highly readable; sometimes, it can replace a WHERE
clause.
Additionally, if you need to work not with the entire table but only with a filtered part, an inner subquery within the FROM
section can be extremely handy.
Now, let's move on to a small task!
In this task, we'll be working with the department
table.
Let me remind you what it looks like:
Task
Your task is to retrieve the average budget (budget
column) for all managerial departments from the department
table. Use an inner subquery in the FROM
section to filter only the managerial type of department. Also, use the alias manager_departments
for this table so the task is checked correctly.
Note:
The response should have only one column,
average_budget
. This is an alias for the aggregate functionAVG()
.
Task
Your task is to retrieve the average budget (budget
column) for all managerial departments from the department
table. Use an inner subquery in the FROM
section to filter only the managerial type of department. Also, use the alias manager_departments
for this table so the task is checked correctly.
Note:
The response should have only one column,
average_budget
. This is an alias for the aggregate functionAVG()
.
Note
This task could also be done using a
WHERE
clause, but we use a nested query here to practice this syntax, which will be useful for solving more complex problems in the future.
Everything was clear?
Using Inner Subqueries in the FROM Section
As you may have understood from previous chapters, an inner subquery creates a table with which we then perform operations in the outer query.
From this, we can conclude that we can also use an inner query within the FROM
section to select something from this table.
Let's consider an example where we need to work with employees
whose salary
is above a certain value. But instead of a WHERE
clause, we will use an inner query:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
We've created a new table using an inner subquery with which we can work and gather information.
Note
Notice that for such a table, it's essential to provide an alias.
When might this be useful?
Such a query is highly readable; sometimes, it can replace a WHERE
clause.
Additionally, if you need to work not with the entire table but only with a filtered part, an inner subquery within the FROM
section can be extremely handy.
Now, let's move on to a small task!
In this task, we'll be working with the department
table.
Let me remind you what it looks like:
Task
Your task is to retrieve the average budget (budget
column) for all managerial departments from the department
table. Use an inner subquery in the FROM
section to filter only the managerial type of department. Also, use the alias manager_departments
for this table so the task is checked correctly.
Note:
The response should have only one column,
average_budget
. This is an alias for the aggregate functionAVG()
.
Task
Your task is to retrieve the average budget (budget
column) for all managerial departments from the department
table. Use an inner subquery in the FROM
section to filter only the managerial type of department. Also, use the alias manager_departments
for this table so the task is checked correctly.
Note:
The response should have only one column,
average_budget
. This is an alias for the aggregate functionAVG()
.
Note
This task could also be done using a
WHERE
clause, but we use a nested query here to practice this syntax, which will be useful for solving more complex problems in the future.
Everything was clear?
As you may have understood from previous chapters, an inner subquery creates a table with which we then perform operations in the outer query.
From this, we can conclude that we can also use an inner query within the FROM
section to select something from this table.
Let's consider an example where we need to work with employees
whose salary
is above a certain value. But instead of a WHERE
clause, we will use an inner query:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
We've created a new table using an inner subquery with which we can work and gather information.
Note
Notice that for such a table, it's essential to provide an alias.
When might this be useful?
Such a query is highly readable; sometimes, it can replace a WHERE
clause.
Additionally, if you need to work not with the entire table but only with a filtered part, an inner subquery within the FROM
section can be extremely handy.
Now, let's move on to a small task!
In this task, we'll be working with the department
table.
Let me remind you what it looks like:
Task
Your task is to retrieve the average budget (budget
column) for all managerial departments from the department
table. Use an inner subquery in the FROM
section to filter only the managerial type of department. Also, use the alias manager_departments
for this table so the task is checked correctly.
Note:
The response should have only one column,
average_budget
. This is an alias for the aggregate functionAVG()
.
Note
This task could also be done using a
WHERE
clause, but we use a nested query here to practice this syntax, which will be useful for solving more complex problems in the future.