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
course content

Contenu du cours

SQL Intermédiaire

SQL Intermédiaire

1. Grouping
2. Sous-Requêtes Imbriquées
3. Joindre des Tables
4. DDL et DML en SQL

book
Utilisation des Sous-Requêtes Internes dans la Section FROM

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

De cela, nous pouvons conclure que nous pouvons également utiliser une requête interne dans la section FROM pour sélectionner quelque chose à partir de cette table.

Considérons un exemple où nous devons travailler avec les employees dont le salary est supérieur à une certaine valeur. Mais au lieu d'une clause WHERE, nous utiliserons une requête interne:

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

Nous avons créé une nouvelle table en utilisant une sous-requête interne avec laquelle nous pouvons travailler et recueillir des informations.

Remarque

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

Quand 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 l'ensemble de la table mais uniquement avec une partie filtrée, une sous-requête interne dans la clause FROM peut s'avérer extrêmement utile.

Tâche

Swipe to start coding

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

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

Remarque

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

Instructions brèves

  • Récupérez la valeur moyenne de la colonne budget.
  • Assignez l'alias average_budget à cette colonne.
  • Dans la clause FROM, vous devez écrire une requête imbriquée.
  • Dans la requête imbriquée, sélectionnez toutes les colonnes de la table department.
  • Dans la requête imbriquée, utilisez la clause WHERE avec la condition type = 'manager'.
  • Assignez 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
toggle bottom row

book
Utilisation des Sous-Requêtes Internes dans la Section FROM

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

De cela, nous pouvons conclure que nous pouvons également utiliser une requête interne dans la section FROM pour sélectionner quelque chose à partir de cette table.

Considérons un exemple où nous devons travailler avec les employees dont le salary est supérieur à une certaine valeur. Mais au lieu d'une clause WHERE, nous utiliserons une requête interne:

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

Nous avons créé une nouvelle table en utilisant une sous-requête interne avec laquelle nous pouvons travailler et recueillir des informations.

Remarque

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

Quand 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 l'ensemble de la table mais uniquement avec une partie filtrée, une sous-requête interne dans la clause FROM peut s'avérer extrêmement utile.

Tâche

Swipe to start coding

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

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

Remarque

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

Instructions brèves

  • Récupérez la valeur moyenne de la colonne budget.
  • Assignez l'alias average_budget à cette colonne.
  • Dans la clause FROM, vous devez écrire une requête imbriquée.
  • Dans la requête imbriquée, sélectionnez toutes les colonnes de la table department.
  • Dans la requête imbriquée, utilisez la clause WHERE avec la condition type = 'manager'.
  • Assignez 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
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt