Contenu du cours
Techniques Avancées en SQL
Techniques Avancées en SQL
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%
et50%
appartiendra à la troisième classe ; - Une personne dont le solde de compte est entre
50%
et75%
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 fonctionNTILE()
à l'ensemble du jeu de résultats, et non à des sous-ensembles ou partitions spécifiques des données.
La clauseORDER 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 utiliserionsPARTITION BY
.
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 :
- Spécifier le nombre de classes comme argument de la fonction.
- Fournir un ordre par solde de compte pour déterminer la classe.
- 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
Merci pour vos commentaires !
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%
et50%
appartiendra à la troisième classe ; - Une personne dont le solde de compte est entre
50%
et75%
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 fonctionNTILE()
à l'ensemble du jeu de résultats, et non à des sous-ensembles ou partitions spécifiques des données.
La clauseORDER 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 utiliserionsPARTITION BY
.
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 :
- Spécifier le nombre de classes comme argument de la fonction.
- Fournir un ordre par solde de compte pour déterminer la classe.
- 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
Merci pour vos commentaires !