Sintaxe:
>> NTILE (buckets) OVER ([PARTITION BY partição expression,…] [ORDET BY sort expression]) [ASC | DESC],…]);Em primeiro lugar, para compreender o método NTILE, faça o login no shell do PostgreSQL. É por isso que tente iniciar o shell de linha de comando PostgreSQL a partir dos aplicativos. Para trabalhar em outro servidor, digite o nome de um servidor; caso contrário, pressione Enter. Se você precisar praticar no banco de dados previamente designado, e.g., Postgres e pressione Enter ou então inscreva um título de banco de dados, e.g. 'teste'. Para usar uma porta diferente de 5432, inscreva-a; se não, deixe como está e pressione Enter para continuar. Pode ser solicitado que você insira o nome de usuário caso precise mudar para um novo nome de usuário. Digite o nome de usuário; caso contrário, basta pressionar Enter. Finalmente, você deve colocar sua senha de usuário atual, para alternar usando a linha de comando utilizando aquele usuário específico como abaixo. Posteriormente, entradas efetivas de todos os dados obrigatórios, você pode começar a trabalhar em NTILE.
Para começar a trabalhar no NTILE, você deve criar uma nova tabela usando o comando CREATE se você não tiver uma. Pense na tabela "funcionário" exibida abaixo em seu banco de dados PostgreSQL denominado 'teste'. Esta tabela contém quatro colunas e.g., id, nome, idade e salário de um funcionário de uma determinada empresa. Cada coluna tem um total de 10 linhas, o que significa 10 registros em cada campo da coluna.
>> SELECT * FROM funcionário;
No início, temos que entender o conceito simples de buscar registros de uma tabela usando a cláusula ORDER BY. Temos executado o comando SELECT abaixo sem usar NTILE para elaborar e entender o conceito brevemente. Recuperamos registros para colunas; nome, idade e salário ao classificar os registros na ordem crescente do campo “idade”. Você pode ver que ele apenas exibirá os registros conforme apresentados na imagem.
>> SELECIONE nome, idade, salário FROM funcionário ORDEM POR idade;
Uso de NTILE () OVER com cláusula ORDER BY:
Assumindo a mesma tabela "funcionário", vamos começar a usar a cláusula NTILE () OVER em nosso exemplo. Neste exemplo, selecionamos as duas colunas; nome e salário, enquanto classifica o resultado relacionado à ordem crescente de uma coluna “salário”. O resultado conterá dados em que a idade de um funcionário é maior que 24 anos. Definimos o valor do intervalo NTILE como “3” porque queremos dividir as linhas em 3 intervalos, e.g., 1 a 3. Você pode ver que as linhas foram divididas com sucesso em 3 grupos iguais, contendo 3 linhas em cada grupo.
>> SELECIONE nome, salário, NTILE (3) ACIMA (ORDENAR POR salário) FROMempregado ONDE idade> '24';
Agora, vamos dar outro exemplo ao usar a mesma tabela "funcionário". Desta vez, queremos buscar os registros de três colunas; nome, idade e salário usando a consulta SELECT no shell de comando. Há pequenas mudanças na cláusula WHERE. Atualmente, temos procurado os registros da tabela “funcionário” onde a idade for menor que 27 anos que só obteremos os registros com idade menor que 27. Por outro lado, não há mudança no valor do intervalo, pois é novamente 3. Tentando o comando indicado, encontramos apenas três registros, igualmente divididos em 3 baldes, conforme exibido na imagem.
>> SELECIONE nome, idade, salário, NTILE (3) ACIMA (ORDENAR POR salário) DO funcionário ONDE idade < '27';
Uso de NTILE () OVER com cláusula ORDER BY e PARTITION BY:
Vejamos um exemplo de NTILE () OVER ao usar as cláusulas PARTITION BY e ORDER BY simultaneamente. Suponha que a tabela inalterada "funcionário" de um "teste" de banco de dados será usada. Neste exemplo, você deve selecionar as três colunas; nome, idade e salário, enquanto classifica na forma crescente de um campo “idade”. Além disso, temos utilizado a cláusula PARTITION BY na coluna “salário”, para fazer partições de uma tabela de acordo com esta coluna. Não há nenhuma condição específica que foi usada nesta consulta em particular, o que significa que todos os registros da tabela "funcionário" serão exibidos. O intervalo NTILE tem um valor de “3”. Na execução da consulta declarada abaixo, você verá o resultado abaixo. As partições são feitas de acordo com os valores distintos da coluna “salário”. Todos os valores da coluna “salário” são distintos, por isso está em partições diferentes exceto o valor “60000”. Isso significa que cada partição tem 1 valor, exceto um. Depois disso, todas as linhas de partição foram classificadas por meio de baldes. Apenas um balde obteve a 2ª classificação.
>> SELECIONE nome, idade, salário, NTILE (3) ACIMA (PARTIÇÃO POR salário, ORDEM POR idade) DO funcionário;
Tomando o mesmo exemplo de NTILE () OVER com o uso da cláusula PARTITION BY e ORDER BY com uma cláusula WHERE. Na cláusula WHERE, definimos a condição, que diz que os únicos registros que serão buscados são aqueles em que a idade do funcionário é inferior a 27 anos. Obtivemos apenas 3 resultados com 2 partições de acordo com a idade e a coluna "ntile" com classificações.
>> SELECIONE nome, idade, salário, NTILE (3) ACIMA (PARTIÇÃO POR salário, ORDEM POR idade) DE funcionário ONDE idade < '27';
Conclusão:
Neste guia, discutimos diferentes exemplos de funções ntile. Você pode implementá-los de acordo com sua necessidade.