Analise as afrmativas abaixo com relação às funções analític...

Próximas questões
Com base no mesmo assunto
Q386468 Banco de Dados
Analise as afrmativas abaixo com relação às funções analíticas do Oracle RANK e DENSE_RANK.

1. DENSE_RANK pode ser utilizada com PARTITION enquanto RANK, não.

2. RANK atribui o mesmo valor de classifcação (rank) para valores de comparação iguais.

3. DENSE_RANK atribui o próximo valor da escala de ranking (consecutivo) após encontrar valores de comparação iguais (que recebem o mesmo rank).

Assinale a alternativa que indica todas as afrmativas corretas.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a D, que afirma que somente as afirmativas 2 e 3 estão corretas. Vamos entender o porquê dessa escolha.

A primeira afirmativa é incorreta porque tanto a função RANK quanto a DENSE_RANK podem ser utilizadas com a cláusula PARTITION BY. Esta cláusula é usada para dividir o conjunto de resultados em partições para que as funções analíticas sejam aplicadas a cada partição de forma independente.

A segunda afirmativa é correta. Quando a função RANK é usada, se houver empate nos valores que estão sendo classificados (ou seja, valores iguais), ela atribuirá o mesmo valor de classificação para todos os itens empatados. Após um empate, o próximo valor de classificação será incrementado, levando em conta o número de empates. Por exemplo, se houver dois registros empatados em primeiro lugar, o próximo registro receberá a classificação de número 3.

A terceira afirmativa também é correta. A função DENSE_RANK, assim como a RANK, atribui o mesmo valor de classificação para valores iguais. No entanto, a diferença reside no fato de que após encontrar valores de comparação iguais, DENSE_RANK atribuirá o próximo valor consecutivo da escala de ranking, independentemente do número de empates. Isso significa que não há "saltos" nos valores de classificação após um empate, como acontece com a RANK.

Portanto, com base na análise das funções, podemos concluir que a alternativa D é a que apresenta a resposta precisa ao indicar que apenas as afirmativas 2 e 3 são verdadeiras.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

1) as duas funções podem ser utilizadas com a função PARTITION. Portanto errada a primeira afirmativa.
2) Correto, a função RANK atribui o mesmo valor para classificações iguais. DENSE_RANK também.
3) Correto, o DENSE_RANK mantem o valor da sequência (consecutivo) de ranks das comparações, o que não ocorre com o RANK, pois este "quebra" a sequência.

A única diferença entre as duas funções é que o DENSE não "quebra" a continuidade da sequência de ranks após encontrar comparações iguais.

Vejam aqui exemplos: http://www.oracle-base.com/articles/misc/rank-dense-rank-first-last-analytic-functions.php

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo