Défi : Utilisation de la Fonction de Fenêtre
Supposons que nous souhaitions ajouter des informations à la table concernant à 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 se situe dans les
25%inférieurs appartiendra à la quatrième classe ; - Une personne dont le solde de compte se situe entre
25%et50%appartiendra à la troisième classe ; - Une personne dont le solde de compte se situe entre
50%et75%appartiendra à la deuxième classe ; - Une personne dont le solde de compte se situe 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 d'une partition ordonnée en un nombre spécifié de groupes d'effectifs à peu près égaux, ou "tuiles".
Elle attribue à chaque ligne un numéro de groupe, en commençant par 1, selon le groupe auquel elle appartient.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Dans cet exemple, il n'est pas nécessaire de spécifier une clause PARTITION BY car nous souhaitons appliquer la fonction NTILE() à l'ensemble du résultat, et non à des sous-ensembles ou partitions spécifiques des données.
La clause ORDER BY suffit car elle définit l'ordre dans lequel les lignes sont réparties dans les tuiles, garantissant ainsi que le regroupement se fait selon l'ordre trié des salaires sur l'ensemble de la table.
Si nous voulions calculer les tuiles au sein de groupes spécifiques (par exemple, des départements), nous utiliserions PARTITION BY.
Swipe to start coding
Complétez les espaces vides pour utiliser la fonction NTILE() afin que chaque titulaire de compte soit affecté à une classe de 1 à 4, où la classe 1 regroupe les soldes les plus élevés.
- Utilisez 4 comme nombre de classes ;
- Triez selon la colonne
balancepar ordre décroissant ; - Assurez-vous que votre résultat affiche
account_holder,balanceet leurclass.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
How do I use the NTILE() function to classify users into these classes?
Can you show an example SQL query that implements this classification?
What does the output table look like after adding the class information?
Awesome!
Completion rate improved to 4.55
Défi : Utilisation de la Fonction de Fenêtre
Glissez pour afficher le menu
Supposons que nous souhaitions ajouter des informations à la table concernant à 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 se situe dans les
25%inférieurs appartiendra à la quatrième classe ; - Une personne dont le solde de compte se situe entre
25%et50%appartiendra à la troisième classe ; - Une personne dont le solde de compte se situe entre
50%et75%appartiendra à la deuxième classe ; - Une personne dont le solde de compte se situe 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 d'une partition ordonnée en un nombre spécifié de groupes d'effectifs à peu près égaux, ou "tuiles".
Elle attribue à chaque ligne un numéro de groupe, en commençant par 1, selon le groupe auquel elle appartient.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Dans cet exemple, il n'est pas nécessaire de spécifier une clause PARTITION BY car nous souhaitons appliquer la fonction NTILE() à l'ensemble du résultat, et non à des sous-ensembles ou partitions spécifiques des données.
La clause ORDER BY suffit car elle définit l'ordre dans lequel les lignes sont réparties dans les tuiles, garantissant ainsi que le regroupement se fait selon l'ordre trié des salaires sur l'ensemble de la table.
Si nous voulions calculer les tuiles au sein de groupes spécifiques (par exemple, des départements), nous utiliserions PARTITION BY.
Swipe to start coding
Complétez les espaces vides pour utiliser la fonction NTILE() afin que chaque titulaire de compte soit affecté à une classe de 1 à 4, où la classe 1 regroupe les soldes les plus élevés.
- Utilisez 4 comme nombre de classes ;
- Triez selon la colonne
balancepar ordre décroissant ; - Assurez-vous que votre résultat affiche
account_holder,balanceet leurclass.
Solution
Merci pour vos commentaires !
single