Funções RANK e DENSE_RANK
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 65 de 72.
ROW_NUMBER() é um tipo de função de classificação, e há mais duas: RANK() e DENSE_RANK().
A função RANK() numera as linhas como ROW_NUMBER(), mas atribui números idênticos às mesmas linhas e pula números. DENSE_RANK() é semelhante a RANK(), mas não pula números.
Por exemplo:
| id | level |
| 1 | 5 |
| 2 | 6 |
| 3 | 6 |
| 4 | 7 |
| 5 | 7 |
| 6 | 5 |
SELECT id,
ROW_NUMBER() OVER (ORDER BY level) as row_num,
RANK() OVER (ORDER BY level) as row_rank,
DENSE_RANK() OVER (ORDER BY level) as row_dense_rank
FROM table1Isso retornará:
| id | row_num | row_rank | row_dense_rank |
| 1 | 1 | 1 | 1 |
| 6 | 2 | 1 | 1 |
| 2 | 3 | 3 | 2 |
| 3 | 4 | 3 | 2 |
| 4 | 5 | 5 | 3 |
| 5 | 6 | 5 | 3 |
Explicação:
ROW_NUMBER(): Sempre único: 1, 2, 3, 4, 5, 6RANK():- nível 5 (2 linhas): ambas recebem a classificação 1
- nível 6 (2 linhas): ambas recebem a classificação 3 (pula 2)
- nível 7 (2 linhas): ambas recebem a classificação 5 (pula 4)
DENSE_RANK():- nível 5 (2 linhas): ambas recebem a classificação 1
- nível 6 (2 linhas): ambas recebem a classificação 2 (sem pular)
- nível 7 (2 linhas): ambas recebem a classificação 3 (sem pular)
Desafio
FácilTabelas e colunas disponíveis:
medals:region,medal_color,medal_count
Crie uma consulta que mostre a região, a contagem total de medalhas (soma de todas as medalhas, independentemente da cor) e dois tipos de classificações:
- Uma
regular_rank(com lacunas) sobre a soma das medalhas - Uma
dense_rank(sem lacunas) sobre a soma das medalhas
Ordene o resultado por:
order by total_medals desc, region ascExperimente você mesmo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Mais palavras-chave
A palavra-chave INA palavra-chave BETWEENA palavra-chave LIKEA palavra-chave ASRecapitulação - Modelos de celulares2Condições
Noções básicas de condiçõesA palavra-chave ANDA palavra-chave ORA palavra-chave NOTCombinação de várias condiçõesParêntesesBooleanos3Formato de retorno específico
Valores nulosOrdenar resultados - Parte 1Ordenar resultados - Parte 2Recapitulação - Empresa de segurança cibernéticaLimitar o número de registrosRecapitulação - Fábrica de veículos6Desafios introdutórios
Revisão - Eleição parlamentarRevisão - Prisão criminal pela políciaRevisão - Recipiente de bebidas de barRevisão - Projetar novas colunas9Múltiplas tabelas
JOIN básico – Parte 1JOIN básico – Parte 2Revisão – JOINAuto-JOINRevisão – Auto-JOINUNIONSimplifique consultas com a palavra-chave WITHRevisão – Consultas com WITHRevisão – Prestador de serviços imobiliários12Funções de Janela parte 2
Funções RANK e DENSE_RANKRecapitulação - RANK e DENSE_RANKFunção NTILEFunções de agregaçãoCritério ROWS e RANGEPratique por conta própria: Playground de SQL