Função de classificação do servidor SQL

Função de classificação do servidor SQL

Existe uma necessidade fundamental de categorizar ou classificar vários registros ao trabalhar com dados. Por exemplo, você pode classificar as equipes com base em suas pontuações, funcionários com base em seu salário e muito mais.

A maioria de nós realiza cálculos usando funções que retornam um único valor. Neste guia, exploraremos como usar a função de classificação do SQL Server para retornar um valor agregado para um grupo de linhas específico.

Função do SQL Server Rank (): o básico

A função rank () faz parte das funções da janela do SQL Server. Funciona atribuindo uma classificação a cada linha para uma partição específica do conjunto resultante.

A função atribui o mesmo valor de classificação para as linhas em uma partição semelhante. Ele atribui a primeira classificação, o valor de 1, e agrega um valor consecutivo a cada classificação.

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

classificar sobre (
[Partição por expressão],
Ordem por expressão [ASC | DEC]
);

Vamos quebrar a sintaxe acima.

A cláusula de partição por. Por exemplo, em um banco de dados que contém dados de funcionários, você pode particionar linhas com base nos departamentos em que eles funcionam.

A próxima cláusula, ordem, define a ordem em que as linhas são organizadas nas partições especificadas.

Função do SQL Server Rank (): Uso prático

Vamos dar um exemplo prático para entender como usar a função rank () no SQL Server.

Comece criando uma tabela de amostra contendo informações do funcionário.

Crie desenvolvedores de tabela (
identidade id int (1,1), não uma chave primária nula,
nome Varchar (200) não nulo,
Departamento Varchar (50),
dinheiro salarial
);

Em seguida, adicione alguns dados à tabela:

Insira em desenvolvedores (nome, departamento, salário)
Valores ('Rebecca', 'Game Developer', US $ 120000),
('James', 'Mobile Developer', US $ 110000),
('Laura', 'DevOps Developer', US $ 180000),
('Quill', 'Developer Mobile', US $ 109000),
('John', 'Desenvolvedor de pilha completa', US $ 182000),
('Matthew', 'Game Developer', US $ 140000),
('Caitlyn', 'DevOps Developer', US $ 123000),
('Michelle', 'Data Science Developer', US $ 204000),
('Antony', 'Front-end Developer', US $ 103100),
('Khadija', 'Desenvolvedor de back -end', US $ 193000),
('Joseph', 'Game Developer', US $ 11500);
Selecione * dos desenvolvedores;

Você deve ter uma tabela com os registros como mostrado:

Exemplo 1: Ordem por

Use a função de classificação para atribuir ranks aos dados. Um exemplo de consulta é como mostrado:

Selecione *, rank () sobre (ordem por departamento) como rank_number dos desenvolvedores;

A consulta acima deve fornecer a saída como mostrado:

A saída acima mostra que a função atribuiu as linhas de departamentos semelhantes um valor de classificação semelhante. Observe a função pula alguns valores de classificação, dependendo do número de valores com a mesma classificação.

Por exemplo, a partir da classificação de 7, a função salta para o Rank 10, pois o Rank 8 e o 9 são atribuídos aos dois valores consecutivos da classificação 7.

Exemplo 2: Partição por

Considere o exemplo abaixo. Ele usa a função de classificação para atribuir uma classificação aos desenvolvedores no mesmo departamento.

Selecione *, rank () sobre (partição por ordem de departamento por salário desc) como rank_number dos desenvolvedores;

A consulta acima começa dividindo as linhas de acordo com seus departamentos. Em seguida, o pedido por cláusula classifica os registros em cada partição pelo salário em ordem decrescente.

A saída resultante é como mostrado:

Conclusão

Neste guia, abordamos como trabalhar com a função de classificação no SQL Server, permitindo que você particive e classifique as linhas.

Obrigado pela leitura!