Menu
Coddy logo textTech

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:

idnível
14
24
35
46
57
67
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1

Isso retornará:

idnívelpeças
141
241
352
462
573
673

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.

challenge icon

Desafio

Fácil

Tabelas 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

quiz iconTeste seus conhecimentos

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

Pratique por conta própria: Playground de SQL