Analise as afrmativas abaixo com relação às funções analític...
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.
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
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