> ## 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.

> Documentação da função de janela ntile

# ntile

Divide as linhas ordenadas em uma partição em um número especificado de buckets (grupos) com tamanhos tão iguais quanto possível e retorna o número do bucket ao qual a linha atual pertence. Os buckets são numerados a partir de 1. Em cada partição, as linhas são atribuídas aos buckets em ordem: se o número de linhas não for divisível pelo número de buckets, os primeiros buckets receberão uma linha a mais do que os últimos.

**Sintaxe**

```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)
```

O argumento `buckets` deve ser um inteiro positivo constante.

Uma cláusula `ORDER BY` é obrigatória. O frame da janela deve abranger a partição inteira (`ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING`), que também é o frame padrão usado quando nada é especificado explicitamente.

Para mais detalhes sobre a sintaxe de funções de janela, consulte: [Window Functions - Syntax](/docs/pt-BR/reference/functions/window-functions/index#syntax).

**Valor retornado**

* O número do bucket da linha atual dentro de sua partição. [UInt64](/docs/pt-BR/reference/data-types/int-uint).

**Exemplo**

O exemplo a seguir divide os jogadores em quatro buckets, ordenados por salário em ordem decrescente.

```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 │
   └─────────────────┴────────┴────────┘
```

Há sete linhas e quatro buckets; portanto, os três primeiros buckets contêm duas linhas cada, e o último bucket contém apenas uma linha.
