> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentation de la fonction de fenêtre ntile

# ntile

Répartit les lignes ordonnées au sein d’une partition dans un nombre spécifié de groupes, de taille aussi égale que possible, et renvoie le numéro du groupe auquel appartient la ligne courante. Les groupes sont numérotés à partir de 1. Pour chaque partition, les lignes sont réparties entre les groupes dans l’ordre : si le nombre de lignes n’est pas divisible par le nombre de groupes, les premiers groupes reçoivent une ligne de plus que les suivants.

**Syntaxe**

```sql theme={null}
ntile (buckets)
  OVER ([[PARTITION BY grouping_column] [ORDER BY sorting_column]
        ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING] | [window_name])
FROM table_name
WINDOW window_name as ([PARTITION BY grouping_column] [ORDER BY sorting_column] ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
```

L’argument `buckets` doit être un entier positif constant.

Une clause `ORDER BY` est requise. Le cadre de fenêtre doit couvrir toute la partition (`ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING`), ce qui correspond également au cadre par défaut lorsqu’aucun n’est explicitement spécifié.

Pour plus de détails sur la syntaxe des fonctions de fenêtre, voir : [Fonctions de fenêtre - Syntaxe](/docs/fr/reference/functions/window-functions/index#syntax).

**Valeur retournée**

* Le numéro du bucket de la ligne courante dans sa partition. [UInt64](/docs/fr/reference/data-types/int-uint).

**Exemple**

L’exemple suivant répartit les joueurs en quatre buckets classés par salaire décroissant.

```sql title="Query" theme={null}
CREATE TABLE salaries
(
    `team` String,
    `player` String,
    `salary` UInt32,
    `position` String
)
Engine = Memory;

INSERT INTO salaries FORMAT Values
    ('Port Elizabeth Barbarians', 'Gary Chen', 195000, 'F'),
    ('New Coreystad Archdukes', 'Charles Juarez', 190000, 'F'),
    ('Port Elizabeth Barbarians', 'Michael Stanley', 150000, 'D'),
    ('New Coreystad Archdukes', 'Scott Harrison', 150000, 'D'),
    ('Port Elizabeth Barbarians', 'Robert George', 195000, 'M'),
    ('South Hampton Seagulls', 'Douglas Benson', 150000, 'M'),
    ('South Hampton Seagulls', 'James Henderson', 140000, 'M');
```

```sql title="Query" theme={null}
SELECT player, salary,
       ntile(4) OVER (ORDER BY salary DESC, player ASC) AS bucket
FROM salaries;
```

```response title="Response" theme={null}
   ┌─player──────────┬─salary─┬─bucket─┐
1. │ Gary Chen       │ 195000 │      1 │
2. │ Robert George   │ 195000 │      1 │
3. │ Charles Juarez  │ 190000 │      2 │
4. │ Douglas Benson  │ 150000 │      2 │
5. │ Michael Stanley │ 150000 │      3 │
6. │ Scott Harrison  │ 150000 │      3 │
7. │ James Henderson │ 140000 │      4 │
   └─────────────────┴────────┴────────┘
```

Ici, il y a sept lignes et quatre buckets : les trois premiers contiennent chacun deux lignes, et le dernier une seule.
