Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.
NTILE
Divise la partition en N groupes aussi équitablement que possible et attribue à chaque groupe un entier compris entre 1 et N, dans l'ordre défini par la clause ORDER BY, ou dans un ordre arbitraire sinon. Si nécessaire, les groupes les plus grands viennent en premier.
Syntaxe
SELECT NTILE(N) OVER ([PARTITION BY column] ORDER BY column [ASC|DESC])
FROM <multipartIdentifier>;
Arguments
N Un entier strictement positif indiquant le nombre de groupes (tranches) en lesquels diviser la partition.
PARTITION BY column
Facultatif. Divise le jeu de résultats en partitions. La fonction NTILE est appliquée à chaque partition séparément.
ORDER BY column Spécifie l'ordre dans lequel les lignes sont affectées aux tranches.
Valeur(s) renvoyée(s)
Renvoie un entier compris entre 1 et N indiquant à quelle tranche (groupe) appartient la ligne courante.
Exemples
Regrouper les contributeurs en quartiles par niveau de contribution
-- Group contributors into quartiles by contribution level
SELECT
login,
contributions,
NTILE(4) OVER (ORDER BY contributions DESC) as contribution_quartile,
CASE NTILE(4) OVER (ORDER BY contributions DESC)
WHEN 1 THEN 'Top Contributors'
WHEN 2 THEN 'Active Contributors'
WHEN 3 THEN 'Moderate Contributors'
WHEN 4 THEN 'Occasional Contributors'
END as contributor_tier
FROM github.repos.contributors
WHERE owner = 'stackql'
AND repo = 'stackql';
Utilisez NTILE pour créer des segments ou des niveaux dans vos données. Les cas d'utilisation courants incluent la division des données en quartiles (N=4), en déciles (N=10) ou en centiles (N=100).
Pour plus d'informations, consultez https://sqlite.org/windowfunctions.html#built-in_window_functions.