Função da janela PostgreSql Ntile

Função da janela PostgreSql Ntile
Os métodos de janela no PostgreSQL foram expulsos para equiparar dados divergentes e são essenciais para casos de uso analítico e outros PostGresql. O método NTile () seguido pela cláusula Over em PostgreSQL é descartada para dividir linhas organizadas em uma série de baldes classificados. Os baldes não são nada além de um conjunto de grupos classificados. Ao longo deste artigo, você descobrirá como dividir linhas classificadas em uma partição em uma determinada figura de baldes classificados usando o recurso PostgreSql Ntile (). O método ntile () aloca um número de balde para cada grupo que começa em 1 em um conjunto, demonstrando o conjunto para o qual a linha tem seu lugar.

Sintaxe:

>> ntile (baldes) sobre ([Partição por expressão da partição,…] [Ordet by Sort Expression]) [ASC | Desc],…]);

Primeiro de tudo, para compreender o método Ntile, faça o login do shell postgreSQL. É por isso que tente lançar o shell da linha de comando PostgreSQL dos aplicativos. Para trabalhar em outro servidor, insira o nome de um servidor; Caso contrário, pressione Enter. Se você precisar praticar no banco de dados anteriormente designado, e.g., Postgres, depois 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; Caso contrário, deixe como é e pressione Enter para continuar. Pode solicitar que você entre no nome de usuário, caso você precise mudar para um novo nome de usuário. Digite o nome de usuário; caso contrário, basta pressionar Enter. Por fim, você deve colocar sua senha de usuário atual, para alternar usando a linha de comando utilizando esse usuário específico como embaixo. Posteriormente, entradas eficazes de todos os dados obrigatórios, você pode começar a trabalhar no NTile.

Para começar a trabalhar no NTile, você deve criar uma nova tabela usando o comando CREATE se você não tiver um. Pense na tabela abaixo do display "funcionário" no seu banco de dados PostGresql nomeado como 'teste'. Esta tabela contém quatro colunas e.g., ID, nome, idade e salário de um funcionário de uma empresa em particular. Cada coluna tem um total de 10 linhas, o que significa 10 registros em cada campo de coluna.

>> selecione * do funcionário;

No início, temos que entender o simples conceito de buscar registros de uma tabela usando a cláusula de ordem por ordem. Temos executado o comando selecione abaixo sem usar o Ntile para elaborar e entender o conceito brevemente. Recuperamos registros para colunas; nome, idade e salário enquanto classificam os registros na ordem ascendente de "idade". Você pode ver que ele apenas exibirá os registros, conforme apresentado na imagem.

>> Selecione o nome, idade, salário da ordem dos funcionários por idade;

Uso de Ntile () com Ordem by Cláusula:

Supondo a mesma tabela "funcionário", vamos começar a usar a cláusula ntil () em nosso exemplo. Neste exemplo, estamos selecionando as duas colunas; Nome e salário, ao classificar o resultado relacionado à ordem ascendente de uma coluna “Salário”. O resultado conterá dados onde a idade de um funcionário é superior a 24 anos. Definimos o valor do bucket ntile como "3" porque queremos dividir linhas em 3 baldes, e.g., 1 a 3. Você pode ver que as linhas foram divididas com sucesso em 3 baldes iguais, contendo 3 linhas em cada balde.

>> Selecione Nome, Salário, Ntile (3) (Ordem por Salário) FromEmploye Where Age> '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 selecionada no shell de comando. Há pequenas mudanças na cláusula onde. Atualmente, estamos procurando os registros da tabela "funcionário", onde a idade é inferior a 27 anos, o que só terá os registros com idade inferior a 27. Por outro lado, não há mudança no valor do balde, pois é novamente 3. Tentando o comando declarado, encontramos apenas três registros, igualmente divididos em 3 baldes, conforme exibido na imagem.

>> Selecione Nome, Idade, Salário, Ntil (3) (Ordem por Salário) De funcionário onde a idade < '27';

Uso de Ntile () com ordem e partição por cláusula:

Vamos ter um exemplo de NTile () durante o uso da partição e ordenar por cláusulas simultaneamente. Suponha que a tabela inalterada “funcionário” de um banco de dados “teste” seja usada. Neste exemplo, você deve selecionar as três colunas; Nome, idade e salário, enquanto classificava a maneira ascendente de um campo "idade". Além disso, usamos a cláusula de partição por coluna "Salário", para fazer partições de uma tabela de acordo com esta coluna. Não há condição específica que tenha sido usada nesta consulta em particular, o que significa que todos os registros da tabela “funcionário” serão exibidos. O bucket ntile tem um valor de "3". Na execução da consulta 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 que está em diferentes partições, exceto o valor “60000”. Isso significa que cada partição tem um valor, exceto um. Depois disso, todas as linhas de partição foram classificadas em baldes. Apenas um balde conseguiu a segunda classificação.

>> Selecione Nome, Idade, Salário, Ntil (3) (Partição por salário, ordem por idade) do funcionário;

Tomando o mesmo exemplo de NTile () com o uso de partição e cláusula por ordem por uma cláusula where. Na cláusula Where, definimos a condição, que diz que os únicos registros que serão buscados são onde a idade do funcionário tem menos de 27 anos. Temos apenas 3 resultados com 2 partições de acordo com a idade e a coluna "ntile" com classificações.

>> Selecione Nome, Idade, Salário, Ntil (3) (Partição por Salário, Ordem por Idade) do Funcionário onde a idade < '27';

Conclusão:

Neste guia, discutimos diferentes exemplos de funções qtile. Você pode implementá -los conforme sua necessidade.