Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Utilisation de la Fonction de Fenêtre | Quelques Sujets Supplémentaires
Techniques Avancées en SQL
course content

Contenu du cours

Techniques Avancées en SQL

Techniques Avancées en SQL

1. Acid
2. Optimisation des Requêtes.Indexes
3. Quelques Sujets Supplémentaires

book
Défi : Utilisation de la Fonction de Fenêtre

Considérons la table bank_accounts que nous avons utilisée dans les sections précédentes :

Supposons que nous voulons ajouter des informations au tableau sur à quelle classe appartient chaque utilisateur en fonction de leur solde de compte.

Les classes seront déterminées comme suit :

  • Une personne dont le solde de compte est dans les 25% inférieurs appartiendra à la quatrième classe ;
  • Une personne dont le solde de compte est entre 25% et 50% appartiendra à la troisième classe ;
  • Une personne dont le solde de compte est entre 50% et 75% appartiendra à la deuxième classe ;
  • Une personne dont le solde de compte est dans les 25% supérieurs appartiendra à la première classe.

Pour résoudre ce problème, nous pouvons utiliser une fonction de fenêtre appelée NTILE().
La fonction NTILE() est une fonction de fenêtre qui divise les lignes dans une partition ordonnée en un nombre spécifié de groupes à peu près égaux, ou "tuiles".
Elle attribue à chaque ligne un numéro de groupe, en commençant par 1, en fonction du groupe dans lequel elle se trouve.

Remarque

Dans l'exemple, nous n'avons pas besoin de spécifier une clause PARTITION BY car nous voulons appliquer la fonction NTILE() à l'ensemble du jeu de résultats, et non à des sous-ensembles ou partitions spécifiques des données.
La clause ORDER BY est suffisante car elle définit l'ordre dans lequel les lignes sont distribuées dans les tuiles, garantissant que le regroupement est basé sur l'ordre trié des salaires dans l'ensemble du tableau.
Si nous voulions calculer des tuiles au sein de groupes spécifiques (par exemple, des départements), nous utiliserions PARTITION BY.

Tâche

Swipe to start coding

Votre tâche consiste à appliquer la fonction NTILE() pour obtenir des informations sur la classe de chaque titulaire de compte.

Vous devez :

  1. Spécifier le nombre de classes comme argument de la fonction.
  2. Fournir un ordre par solde de compte pour déterminer la classe.
  3. Comme nous supposons que la première classe est celle avec le solde le plus élevé, nous devons ordonner les soldes en ordre décroissant.

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 3. Chapitre 5
toggle bottom row

book
Défi : Utilisation de la Fonction de Fenêtre

Considérons la table bank_accounts que nous avons utilisée dans les sections précédentes :

Supposons que nous voulons ajouter des informations au tableau sur à quelle classe appartient chaque utilisateur en fonction de leur solde de compte.

Les classes seront déterminées comme suit :

  • Une personne dont le solde de compte est dans les 25% inférieurs appartiendra à la quatrième classe ;
  • Une personne dont le solde de compte est entre 25% et 50% appartiendra à la troisième classe ;
  • Une personne dont le solde de compte est entre 50% et 75% appartiendra à la deuxième classe ;
  • Une personne dont le solde de compte est dans les 25% supérieurs appartiendra à la première classe.

Pour résoudre ce problème, nous pouvons utiliser une fonction de fenêtre appelée NTILE().
La fonction NTILE() est une fonction de fenêtre qui divise les lignes dans une partition ordonnée en un nombre spécifié de groupes à peu près égaux, ou "tuiles".
Elle attribue à chaque ligne un numéro de groupe, en commençant par 1, en fonction du groupe dans lequel elle se trouve.

Remarque

Dans l'exemple, nous n'avons pas besoin de spécifier une clause PARTITION BY car nous voulons appliquer la fonction NTILE() à l'ensemble du jeu de résultats, et non à des sous-ensembles ou partitions spécifiques des données.
La clause ORDER BY est suffisante car elle définit l'ordre dans lequel les lignes sont distribuées dans les tuiles, garantissant que le regroupement est basé sur l'ordre trié des salaires dans l'ensemble du tableau.
Si nous voulions calculer des tuiles au sein de groupes spécifiques (par exemple, des départements), nous utiliserions PARTITION BY.

Tâche

Swipe to start coding

Votre tâche consiste à appliquer la fonction NTILE() pour obtenir des informations sur la classe de chaque titulaire de compte.

Vous devez :

  1. Spécifier le nombre de classes comme argument de la fonction.
  2. Fournir un ordre par solde de compte pour déterminer la classe.
  3. Comme nous supposons que la première classe est celle avec le solde le plus élevé, nous devons ordonner les soldes en ordre décroissant.

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 3. Chapitre 5
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