Summary: neste tutorial, você aprenderá sobre a função MySQL DENSE_RANK()
e como aplicá-la para encontrar a classificação da linha em uma partição ou conjunto de resultados.
Introdução à função MySQL DENSE_RANK
The DENSE_RANK()
é uma função de janela que atribui uma classificação a cada linha dentro de uma partição ou conjunto de resultados sem lacunas nos valores de classificação.
A classificação de uma linha é aumentada em um a partir do número de valores de classificação distintos que vêm antes da linha.
A sintaxe da função DENSE_RANK()
é a seguinte:
Code language: SQL (Structured Query Language) (sql)
Nesta sintaxe:
- Primeiro, a cláusula
PARTITION BY
divide os conjuntos de resultados produzidos pela cláusulaFROM
em partições. A funçãoDENSE_RANK()
é aplicada a cada partição. - Segundo, a cláusula
ORDER BY
especifica a ordem das linhas em cada partição em que a funçãoDENSE_RANK()
opera.
Se uma partição tiver duas ou mais linhas com o mesmo valor de classificação, a cada uma dessas linhas será atribuída a mesma classificação.
Desse modo como a função RANK()
, a função DENSE_RANK()
sempre retorna valores de classificação consecutivos.
>
Ponha que temos uma tabela t
com alguns exemplos de dados como segue:
Code language: SQL (Structured Query Language) (sql)
A seguinte declaração usa a função DENSE_RANK()
para atribuir um rank a cada linha:
Code language: SQL (Structured Query Language) (sql)
Aqui está a saída:
MySQL DENSE_RANK() function example
Usaremos a tabela sales
criada no tutorial da função window para a demonstração.
A seguinte declaração usa a função DENSE_RANK()
para classificar os funcionários de vendas por valor de venda.
Code language: SQL (Structured Query Language) (sql)
A saída é a seguinte:
Neste exemplo:
- Primeiro, a cláusula
PARTITION BY
divide os conjuntos de resultados em partições usando o ano fiscal. - Segundo, a cláusula
ORDER BY
especificou a ordem dos funcionários de vendas por vendas em ordem decrescente. - Terceiro, a função
DENSE_RANK()
é aplicada a cada partição com a ordem das linhas especificada pela cláusulaORDER BY
.
Neste tutorial, você aprendeu como usar a função MySQL DENSE_RANK()
para classificar linhas em cada partição de um conjunto de resultados.
- Este tutorial foi útil?
- Sim Não