Função NTILE
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 67 de 72.
NTILE(n) numera as linhas dividindo-as em n partes aproximadamente iguais. Ela é frequentemente usada para melhorar o desempenho — enviar grandes quantidades de dados de uma só vez pode não ser uma boa ideia, então essa função permite enviar partes menores por vez.
Por exemplo:
| id | nível |
| 1 | 4 |
| 2 | 4 |
| 3 | 5 |
| 4 | 6 |
| 5 | 7 |
| 6 | 7 |
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1Isso retornará:
| id | nível | peças |
| 1 | 4 | 1 |
| 2 | 4 | 1 |
| 3 | 5 | 2 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 7 | 3 |
Obtivemos 3 partes: nível 4 na parte 1, níveis 5 e 6 na parte 2 e nível 7 na parte 3.
Quando o número de linhas não é divisível igualmente por n, NTILE distribui as linhas da forma mais uniforme possível, com os grupos maiores aparecendo primeiro. Por exemplo, se você tiver 9 linhas e NTILE(4), a distribuição seria:
- Grupo 1: 3 linhas
- Grupo 2: 2 linhas
- Grupo 3: 2 linhas
- Grupo 4: 2 linhas
Isso garante que nenhum grupo difira em mais de uma linha de qualquer outro grupo e que quaisquer linhas extras sejam distribuídas primeiro aos grupos de numeração mais baixa.
Desafio
FácilTabelas e colunas disponíveis:
creatures:creature_name,preference,has_legs(contém 'YES' ou 'NO')
Neste desafio, temos criaturas que querem encontrar um parceiro. Precisamos ajudá-las a encontrar seu par.
Cada criatura tem uma preferência representada por um número. Se ambas as criaturas tiverem números suficientemente próximos, elas podem formar um bom par.
Divida as criaturas em 3 grupos com base em seus valores de preferência, mas considere apenas as criaturas que têm pernas (onde has_legs = 'YES'). Retorne creature_name, preference e seu group_number (1, 2 ou 3). Ordene os resultados por preference em ordem crescente.
Experimente 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