Résumé: dans ce tutoriel, vous apprendrez à utiliser la fonction SQLite NTILE()
pour diviser un jeu de résultats en un certain nombre de compartiments et attribuer un numéro de compartiment à chaque ligne.
Introduction à la fonction SQLite NTILE()
La fonction SQLite NTILE()
est une fonction de fenêtre qui divise un ensemble de résultats ordonné en un certain nombre de compartiments par une expression spécifiée et attribue un numéro de compartiment approprié à chaque ligne.
Ce qui suit montre la syntaxe de la fonction NTILE()
:
Dans cette syntaxe:
expression
Le expression
peut être un entier littéral positif ou toute expression valide qui se résout en un entier positif.
La fonction NTILE()
attribue des nombres de 1 à la valeur de expression
à chaque ligne. Le nombre de lignes dans les compartiments peut différer d’au plus 1. Le reste du nombre de lignes divisées par compartiments est alloué à chaque compartiment, en commençant par le compartiment 1.
Par exemple, si vous avez 10 lignes et 4 compartiments. Chaque seau aura 2 rangées. Le reste de 10/4 est de 2. Ainsi, le premier compartiment aura 2 + 1 = 3 lignes, le deuxième compartiment aura également 3 lignes.
L’image suivante illustre l’idée:
Si la valeur de l’expression est supérieure au nombre de lignes, la fonction NTILE()
remplira le nombre de compartiments égal au nombre de lignes. Par conséquent, les seaux restants seront vides.
Par exemple, si vous avez 10 lignes et 11 compartiments, chaque ligne se verra attribuer un numéro de compartiment de 1 à 10. Le 11ème seau n’aura pas de rangée.
Notez que vous ne pouvez pas utiliser une sous-requête ou une fonction de fenêtre dans le expression
.
PARTITION PAR
La clause PARTITION BY
divise les ensembles de résultats en partitions auxquelles s’applique la fonction NTILE
.
ORDRE PAR
La clause ORDER BY
spécifie l’ordre des lignes dans chaque partition à laquelle s’applique la NTILE()
.
Exemple de fonction SQLite NTILE()
Nous utiliserons la table tracks de l’exemple de base de données pour démontrer la fonction NTILE()
:
Utilisation de la fonction SQLite NTILE() avec ORDER BY example
L’instruction suivante utilise la fonction NTILE()
pour diviser en 4 compartiments les valeurs de la colonne Milliseconds
de la table tracks
de l’album 1.
La colonne Milliseconds
a 10 valeurs dans cet album, donc les deux valeurs supplémentaires, qui sont le reste de 10/4, sont distribuées aux compartiments 1 et 2, qui ont donc plus de valeur que les compartiments 3 ou 4.
Voici la sortie:
Utilisation de la fonction SQLite NTILE() avec l’exemple de clause PARTITION BY
L’instruction suivante utilise la fonction NTILE()
pour diviser les pistes de chaque album en 3 compartiments par les valeurs de la colonne Bytes
:
L’image suivante montre la sortie:
Dans cet exemple, la clause PARTITION BY
distribuait les lignes en partitions ou en albums. La clause ORDER BY
a trié les pistes de chaque album par leur taille en octets. Et la fonction NTILE()
a attribué un numéro de compartiment à chaque piste et a réinitialisé le numéro de compartiment pour chaque album.
Dans ce tutoriel, vous avez appris à utiliser la fonction SQLite NTILE()
pour diviser un jeu de résultats en un certain nombre de compartiments et attribuer un numéro de compartiment à chaque ligne.
- Ce tutoriel a-t-il été utile?
- Ouinon