MySQL MariaDB

Função de janela MySQL RANK

Função de janela MySQL RANK
O método de classificação aloca uma classificação dentro da partição de um resultado de um conjunto para cada linha. A classificação de uma linha é determinada pelo incremento de um número de classificações a partir da linha que a precede. O MySQL utiliza um recurso de classificação que ajuda uma classificação por linha em uma partição de esquema. No MySQL, os métodos de classificação são realmente uma parte parcial do método de janela. Você usará os métodos de classificação no MySQL com as cláusulas subsequentes:

No total, existem três tipos de funções de classificação, como segue:

RANK MySQL ():

Este é um método que fornece uma classificação dentro de uma partição ou matriz de resultado com lacunas por linha. Cronologicamente, a classificação das linhas não é alocada o tempo todo (i.e., aumentado em um da linha anterior). Mesmo quando você tem um empate entre vários dos valores, nesse ponto, o utilitário rank () aplica a mesma classificação a ele. Além disso, sua classificação anterior mais uma figura de números repetidos pode ser o número de classificação subsequente.

Para entender a classificação, abra o shell do cliente de linha de comando e digite sua senha do MySQL para começar a usá-la.

Suponha que temos uma tabela abaixo chamada "mesmo" dentro de um banco de dados "dados", com alguns registros.

>> SELECIONE * DOS dados.mesmo;

Exemplo 01: RANK simples ()

Abaixo, estamos usando a função Rank dentro do comando SELECT. Esta consulta seleciona a coluna “id” da tabela “mesmo” enquanto a classifica de acordo com a coluna “id”. Como você pode ver, demos um nome à coluna de classificação, que é “my_rank”. A classificação agora será armazenada nesta coluna, conforme mostrado abaixo.

>> SELECT id, RANK () OVER (ORDER BY id) my_rank FROM fata.mesmo;

Exemplo 02: RANK () Usando PARTITION

Assuma outra tabela "funcionário" em um banco de dados "dados" com os seguintes registros. Vamos ter outra instância que divide o conjunto de resultados em segmentos.

>> SELECIONE * DOS dados.empregado;

Para consumir o método RANK (), a instrução subsequente atribui a classificação a cada linha e divide o conjunto de resultados em partições utilizando “Idade” e classificando-as de acordo com “Salário”. Esta consulta foi buscar todos os registros enquanto classificava em uma coluna “new_rank”. Você pode ver o resultado desta consulta abaixo. Classificou a tabela de acordo com “Salário” e dividiu de acordo com “Idade”.

>> SELECT *, RANK () OVER (PARTITION BY Age ORDER BY Salary) new_rank FROM data.empregado;

MySQL DENSE_Rank ():

Esta é uma funcionalidade onde, sem buracos, determina uma classificação para cada linha dentro de uma divisão ou conjunto de resultados. A classificação das linhas é mais frequentemente alocada em ordem sequencial. Às vezes, você tem um empate entre os valores e, portanto, é atribuído à classificação exata pela classificação densa, e sua classificação subsequente é o próximo número sucessivo.

Exemplo 01: Simples DENSE_RANK ()

Suponha que temos uma tabela "funcionário" e você tem que classificar as colunas da tabela, "Nome" e "Salário" de acordo com a coluna "Nome". Criamos uma nova coluna “dens_Rank” para armazenar a classificação dos registros nela. Ao executar a consulta abaixo, temos os seguintes resultados com classificação diferente para todos os valores.

>> SELECIONE Nome, Salário, DENSE_RANK () OVER (ORDER BY Nome) dens_rank FROM data.empregado;

Exemplo 02: DENSE_RANK () Usando PARTITION

Vamos ver outra instância que divide o conjunto de resultados em segmentos. De acordo com a sintaxe abaixo, o conjunto resultante particionado pela frase PARTITION BY é retornado pela instrução FROM, e o método DENSE_RANK () é então espalhado para cada seção usando a coluna “Nome”. Então, para cada segmento, a frase ORDER BY mancha para determinar o imperativo das linhas usando a coluna “Idade”.

>> SELECIONE Nome, Idade, Salário, DENSE_RANK () OVER (PARTITION BY Nome ORDER BY Age) new_rank FROM data.empregado;

Ao executar a consulta acima, você pode ver que temos um resultado muito distinto em comparação com o método único dense_rank () no exemplo acima. Temos o mesmo valor repetido para cada valor de linha, como você pode ver abaixo. É o empate dos valores de classificação.

MySQL PERCENT_RANK ():

Na verdade, é um método de classificação percentual (classificação comparativa) que calcula as linhas dentro de uma partição ou coleção de resultados. Este método retorna uma lista de uma escala de valor de zero a 1.

Exemplo 01: PERCENT_RANK simples ()

Usando a tabela "funcionário", vimos o exemplo do método PERCENT_RANK () simples. Temos uma consulta fornecida abaixo para isso. A coluna per_rank foi gerada pelo método PERCENT_Rank () para classificar o conjunto de resultados na forma de porcentagem. Buscamos os dados de acordo com a ordem de classificação da coluna “Idade” e, em seguida, classificamos os valores desta tabela. O resultado da consulta para este exemplo nos deu uma classificação percentual para os valores, conforme apresentado na imagem abaixo.

>> SELECT *, PERCENT_RANK () OVER (ORDER BY Age) per_rank FROM data.empregado;

Exemplo 02: PERCENT_RANK () Usando PARTITION

Depois de fazer o exemplo simples de PERCENT_RANK (), agora é a vez da cláusula “PARTITION BY”. Temos usado a mesma tabela “funcionário”. Vamos dar uma olhada em outra instância que divide o conjunto de resultados em seções. Dada a sintaxe abaixo, o conjunto resultante da expressão PARTITION BY é reembolsado pela declaração FROM, bem como o método PERCENT_RANK () é então utilizado para classificar cada ordem de linha pela coluna “Nome”. Na imagem exibida abaixo, você pode ver que o conjunto de resultados contém apenas 0 e 1 valores.

>> SELECT *, PERCENT_RANK () OVER (PARTITION BY Salary ORDER BY Name) per_rank FROM data.empregado;

Conclusão:

Finalmente, fizemos todas as três funções de classificação para linhas usadas no MySQL, por meio do shell do cliente de linha de comando do MySQL. Além disso, levamos em consideração a cláusula simples e a cláusula PARTITION BY em nosso estudo.

Melhores distros Linux para jogos em 2021
O sistema operacional Linux percorreu um longo caminho desde sua aparência original, simples e baseada em servidor. Este sistema operacional melhorou ...
Como capturar e transmitir sua sessão de jogo no Linux
No passado, jogar era considerado apenas um hobby, mas com o tempo a indústria de jogos viu um grande crescimento em termos de tecnologia e número de ...
Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...