NTILE

Sintaxe

Descrição do ntile.gif segue

Descrição da ilustração ntil.gif

See Also:

“Analytic Functions” for information on syntax, semantics, and restrictions, including valid forms of expr

Purpose

NTILE é uma função analítica. Divide um conjunto de dados ordenados em um número de baldes indicados por expr e atribui o número de balde apropriado a cada linha. Os baldes são numerados de 1 a expr. O valor expr deve resolver-se para uma constante positiva para cada partição. Oracle Database espera um inteiro, e se expr é uma constante não-inteiro, então Oracle trunca o valor para um inteiro. O valor de retorno é NUMBER.

o número de linhas nos baldes pode diferir no máximo 1. Os valores restantes (o resto do número de linhas divididas por baldes) são distribuídos um para cada balde, começando com o balde 1.

se expr for maior do que o número de linhas, então um número de baldes igual ao número de linhas será preenchido, e os baldes restantes estarão vazios.

não pode utilizar NTILE nem qualquer outra função analítica para expr. Isto é, você não pode aninhar funções analíticas, mas você pode usar outras expressões de função incorporadas para expr.

Veja Também:

“Sobre Expressões SQL” para obter informações sobre válido formas de expr e Tabela 2-10, “Implícita Conversão de Tipo de Matriz” para obter mais informações sobre conversão implícita

Exemplos

O exemplo a seguir divide-se em 4 baldes os valores em salary coluna oe.employees tabela do Departamento de 100. A coluna salary tem 6 valores neste departamento, de modo que os dois valores extra (o restante de 6 / 4) são atribuídos a baldes 1 e 2, que, portanto, têm mais um valor do que baldes 3 ou 4.

SELECT last_name, salary, NTILE(4) OVER (ORDER BY salary DESC) AS quartile FROM employees WHERE department_id = 100;LAST_NAME SALARY QUARTILE------------------------- ---------- ----------Greenberg 12000 1Faviet 9000 1Chen 8200 2Urman 7800 2Sciarra 7700 3Popp 6900 4



+