Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Utilisation des Sous-Requêtes Internes dans la Section FROM | Sous-Requêtes Imbriquées
SQL Intermédiaire

bookUtilisation des Sous-Requêtes Internes dans la Section FROM

Une sous-requête interne crée une table avec laquelle des opérations sont ensuite effectuées dans la requête externe.

Cela permet de conclure qu'il est également possible d'utiliser une requête interne dans la section FROM afin de sélectionner des données à partir de cette table.

Considérons un exemple où il est nécessaire de travailler avec des employees dont le salary est supérieur à une certaine valeur. Mais au lieu d'utiliser une clause WHERE, une requête interne sera utilisée :

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

Une nouvelle table a été créée à l'aide d'une sous-requête interne avec laquelle il est possible de travailler et de collecter des informations.

Note
Remarque

Remarquez que pour une telle table, il est essentiel de fournir un alias.

Dans quels cas cela peut-il être utile ?

Une telle requête est très lisible ; parfois, elle peut remplacer une clause WHERE.

De plus, si vous devez travailler non pas avec la table entière mais seulement avec une partie filtrée, une sous-requête interne dans la section FROM peut s’avérer extrêmement pratique.

Tâche

Swipe to start coding

Votre tâche consiste à récupérer le budget moyen (colonne budget) pour tous les départements de gestion à partir de la table department. Utilisez une sous-requête interne dans la section FROM pour filtrer uniquement les départements de type gestion. Utilisez également l'alias manager_departments pour cette table afin que la tâche soit correctement vérifiée.

La réponse ne doit comporter qu'une seule colonne, average_budget. Il s'agit d'un alias pour la fonction d'agrégation AVG().

Cette tâche pourrait également être réalisée à l'aide d'une clause WHERE, mais nous utilisons ici une requête imbriquée pour s'exercer à cette syntaxe, ce qui sera utile pour résoudre des problèmes plus complexes à l'avenir.

Instructions brèves

  • Récupérer la valeur moyenne de la colonne budget.
  • Attribuer l'alias average_budget à cette colonne.
  • Dans la clause FROM, écrire une requête imbriquée.
  • Dans la requête imbriquée, sélectionner toutes les colonnes de la table department.
  • Dans la requête imbriquée, utiliser la clause WHERE avec la condition type = 'manager'.
  • Attribuer l'alias manager_departments à la requête imbriquée.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 3
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain more scenarios where using an inner subquery in the FROM clause is beneficial?

What are the differences between using a WHERE clause and an inner subquery in the FROM section?

Can you show how to add more conditions or calculations to the inner subquery?

close

bookUtilisation des Sous-Requêtes Internes dans la Section FROM

Glissez pour afficher le menu

Une sous-requête interne crée une table avec laquelle des opérations sont ensuite effectuées dans la requête externe.

Cela permet de conclure qu'il est également possible d'utiliser une requête interne dans la section FROM afin de sélectionner des données à partir de cette table.

Considérons un exemple où il est nécessaire de travailler avec des employees dont le salary est supérieur à une certaine valeur. Mais au lieu d'utiliser une clause WHERE, une requête interne sera utilisée :

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

Une nouvelle table a été créée à l'aide d'une sous-requête interne avec laquelle il est possible de travailler et de collecter des informations.

Note
Remarque

Remarquez que pour une telle table, il est essentiel de fournir un alias.

Dans quels cas cela peut-il être utile ?

Une telle requête est très lisible ; parfois, elle peut remplacer une clause WHERE.

De plus, si vous devez travailler non pas avec la table entière mais seulement avec une partie filtrée, une sous-requête interne dans la section FROM peut s’avérer extrêmement pratique.

Tâche

Swipe to start coding

Votre tâche consiste à récupérer le budget moyen (colonne budget) pour tous les départements de gestion à partir de la table department. Utilisez une sous-requête interne dans la section FROM pour filtrer uniquement les départements de type gestion. Utilisez également l'alias manager_departments pour cette table afin que la tâche soit correctement vérifiée.

La réponse ne doit comporter qu'une seule colonne, average_budget. Il s'agit d'un alias pour la fonction d'agrégation AVG().

Cette tâche pourrait également être réalisée à l'aide d'une clause WHERE, mais nous utilisons ici une requête imbriquée pour s'exercer à cette syntaxe, ce qui sera utile pour résoudre des problèmes plus complexes à l'avenir.

Instructions brèves

  • Récupérer la valeur moyenne de la colonne budget.
  • Attribuer l'alias average_budget à cette colonne.
  • Dans la clause FROM, écrire une requête imbriquée.
  • Dans la requête imbriquée, sélectionner toutes les colonnes de la table department.
  • Dans la requête imbriquée, utiliser la clause WHERE avec la condition type = 'manager'.
  • Attribuer l'alias manager_departments à la requête imbriquée.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 3
single

single

some-alt