SQLite NTILE

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

You might also like

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.