SQL Rank Over

SQL Rank Over
A classificação no SQL permite calcular a classificação de cada registro dentro de uma partição dentro de um conjunto de resultados.

O rank () retornará um índice baseado em 1 para cada registro em uma partição ordenada no SQL padrão. Lembre -se de que a função atribuirá o mesmo valor de classificação às partições com valores semelhantes.

O número de valores de classificação anteriores incrementos de cada consequente valor de classificação da linha. Se você deseja incrementar o valor de classificação em 1, use a função dense_rank ().

Sintaxe da função de classificação ()

A sintaxe para a função de classificação é como mostrado abaixo:

Classificação () sobre (
[Partição por expressão]
Ordem por expressão (ASC | desc));
);

Para ilustrar como usar esta função, considere o exemplo abaixo:

Crie usuários de tabela (
Id Id Serial Primary Key,
First_name Varchar (100),
Last_name Varchar (100),
Estado Varchar (25),
BOOL ativo
);
Insira os valores de usuários (First_Name, Last_Name, State, Active) (
'Mary', 'Smith', 'Nova York', verdadeiro);
Insira os valores de usuários (First_Name, Last_Name, State, Active) (
'Linda', 'Williams', 'Colorado', False);
Insira os valores de usuários (First_Name, Last_Name, State, Active) (
'Taylor', 'Moore', 'Utah', verdadeiro);
Insira os valores de usuários (First_Name, Last_Name, State, Active) (
'Susan', 'Wilson', 'Washington', verdadeiro);
Insira os valores de usuários (First_Name, Last_Name, State, Active) (
'Mary', 'Smith', 'Nova York', verdadeiro);
Insira os valores de usuários (First_Name, Last_Name, State, Active) (
'Taylor', 'Moore', 'Utah', verdadeiro);

As consultas acima criam e inserem dados de amostra na tabela.

Para atribuir uma classificação aos registros no conjunto de resultados, podemos usar a função de classificação () como ilustrado abaixo.

Selecione ID, First_Name, Last_Name, estado, ativo,
classificação () sobre (partição por ordem ativa por id) rank_value
de usuários;

Na consulta acima, particionamos os dados pela coluna ativa. A coluna contém valores booleanos. Em seguida, classificamos cada item nas partições.

O conjunto resultante é como mostrado:

Observe que o resultado contém duas partições, uma contendo valores falsos e o outro contendo valores verdadeiros.

Na partição "falsa", a função atribui os valores de classificação. O mesmo caso da partição "verdadeira". Observe que a função inicia o valor de classificação de 1 em uma nova partição.

Fechamento

Este tutorial mostrou como executar o ranking da linha participando usando a função rank (). Verifique a documentação do seu mecanismo de banco de dados para saber mais.

Obrigado pela leitura!!