Função de classificação Oracle

Função de classificação Oracle

Nesta postagem, você encontrará a função de classificação () nos bancos de dados Oracle, que permite determinar a classificação de uma linha de um determinado conjunto de linhas.

Função de classificação Oracle

A função rank () no Oracle nos permite atribuir uma classificação a cada linha em um conjunto de resultados. A função atribui a mesma classificação a todas as linhas com valores semelhantes e adiciona um número à próxima linha na classificação.

Podemos expressar a sintaxe para a função, como mostrado no seguinte:

Classificação () sobre (
[Query_Partition_clause]
Ordem por Sort_expression [ASC | Desc] [NULLS primeiro | DURAR]
);

A função suporta os seguintes parâmetros:

  1. Query_Partition_clause - É uma cláusula opcional que define a condição para dividir as linhas no resultado da consulta em vários grupos ou partições. A função rank () é então aplicada individualmente às partições resultantes.
  2. Sort_expression - Este parâmetro define a coluna ou expressão usada para determinar a classificação das linhas. As linhas resultantes são classificadas em ordem ascendente ou descendente, conforme definido pelas palavras -chave ASC e DESC. A ordem de classificação padrão está definida para ascender.
  3. Finalmente, a palavra -chave NULL determina como a função trata quaisquer valores nulos ao classificar as linhas. Os parâmetros aceitos incluem:
    • As primeiras e as últimas palavras -chave que especificam se os valores nulos devem ser classificados em primeiro ou último. Por padrão, a função classifica os valores nulos primeiro.

Exemplos de função Oracle Rank ()

Para ilustrar como usar a função rank () no Oracle, usaremos a tabela de funcionários coleta padrão.

Considere a tabela a seguir:

Selecione First_Name, Last_Name, Salário, Job_Id dos funcionários Emp;

Resultado:

Exemplo 1: Usando a função de classificação para determinar a classificação

Este exemplo demonstra o uso da função de classificação () na determinação da classificação de cada funcionário na tabela.

Selecione First_Name, Last_Name, Salário, Job_id, Rank () Over (Ordem por Salário ASC) como classificação
de funcionários emp;

Na consulta fornecida, usamos a função de classificação para atribuir uma classificação a cada linha na tabela de funcionários com base nos valores na coluna salarial.

A função usa a cláusula "Order by" para especificar a ordem em que as linhas são classificadas. Em nosso exemplo, usamos a ordem ascendente com base no valor da coluna salarial.

A função atribui a linha com o salário mais baixo, uma classificação de 1 e a classificação salarial mais alta de n, onde n representa o número de linhas na tabela.

Como você pode notar, as linhas com valores salariais semelhantes recebem a mesma classificação.

Exemplo 2: Usando a função de classificação com cláusula de ordem por ordem

Suponha que desejemos agrupar as linhas com base no JOB_ID e depois atribuir uma classificação às linhas em cada partição.

Podemos executar uma consulta como mostrado no seguinte:

Selecione First_Name, Last_Name, Salário, Job_id, Rank () Over (
Partição por job_id
Ordem por Salário ASC
) Como classificação
De funcionários emp;

A cláusula de partição por.

A função de classificação atribui uma classificação a cada linha em cada partição com o menor salário em cada partição que recebe uma classificação de 1 e o salário mais alto em cada partição que recebe uma classificação de n (onde n é o número de linhas na partição).

Resultado:

Conclusão

Neste tutorial, você aprendeu a usar a função de classificação do Oracle (). Embora a função rank () possa ser benéfica, pode levar a um desempenho de desempenho, especialmente ao trabalhar com consultas complexas e grandes conjuntos de dados.