Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Utilizando Função Window | Alguns Tópicos Adicionais
Técnicas Avançadas em SQL

bookDesafio: Utilizando Função Window

Vamos considerar a tabela bank_accounts que utilizamos nas seções anteriores:

Vamos supor que queremos adicionar informações à tabela sobre a qual classe cada usuário pertence com base no saldo de sua conta.

As classes serão determinadas da seguinte forma:

  • Uma pessoa cujo saldo da conta está nos 25% inferiores pertencerá à quarta classe;
  • Uma pessoa cujo saldo da conta está entre 25% e 50% pertencerá à terceira classe;
  • Uma pessoa cujo saldo da conta está entre 50% e 75% pertencerá à segunda classe;
  • Uma pessoa cujo saldo da conta está nos 25% superiores pertencerá à primeira classe.

Para resolver esse problema, podemos utilizar uma função de janela chamada NTILE().
A função NTILE() é uma função de janela que divide as linhas em uma partição ordenada em um número especificado de grupos aproximadamente iguais, ou "tiles".
Ela atribui a cada linha um número de grupo, começando em 1, com base no grupo ao qual pertence.

NTILE(num_buckets) OVER (
    ORDER BY sort_column
)

Observação

No exemplo, não é necessário especificar uma cláusula PARTITION BY porque queremos aplicar a função NTILE() ao conjunto de resultados inteiro, e não a subconjuntos ou partições específicas dos dados.
A cláusula ORDER BY é suficiente, pois define a ordem na qual as linhas são distribuídas nos tiles, garantindo que o agrupamento seja baseado na ordem dos saldos em toda a tabela.
Se quiséssemos calcular os tiles dentro de grupos específicos (por exemplo, departamentos), utilizaríamos o PARTITION BY.

Tarefa

Swipe to start coding

Sua tarefa é aplicar a função NTILE() para obter informações sobre a classe de cada titular de conta.

Você deve:

  1. Especificar o número de classes como argumento da função.
  2. Definir a ordenação pelo saldo da conta para determinar a classe.
  3. Como assumimos que a primeira classe é a de maior saldo e assim por diante, é necessário ordenar os saldos em ordem decrescente.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 5
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

Awesome!

Completion rate improved to 4.35

bookDesafio: Utilizando Função Window

Deslize para mostrar o menu

Vamos considerar a tabela bank_accounts que utilizamos nas seções anteriores:

Vamos supor que queremos adicionar informações à tabela sobre a qual classe cada usuário pertence com base no saldo de sua conta.

As classes serão determinadas da seguinte forma:

  • Uma pessoa cujo saldo da conta está nos 25% inferiores pertencerá à quarta classe;
  • Uma pessoa cujo saldo da conta está entre 25% e 50% pertencerá à terceira classe;
  • Uma pessoa cujo saldo da conta está entre 50% e 75% pertencerá à segunda classe;
  • Uma pessoa cujo saldo da conta está nos 25% superiores pertencerá à primeira classe.

Para resolver esse problema, podemos utilizar uma função de janela chamada NTILE().
A função NTILE() é uma função de janela que divide as linhas em uma partição ordenada em um número especificado de grupos aproximadamente iguais, ou "tiles".
Ela atribui a cada linha um número de grupo, começando em 1, com base no grupo ao qual pertence.

NTILE(num_buckets) OVER (
    ORDER BY sort_column
)

Observação

No exemplo, não é necessário especificar uma cláusula PARTITION BY porque queremos aplicar a função NTILE() ao conjunto de resultados inteiro, e não a subconjuntos ou partições específicas dos dados.
A cláusula ORDER BY é suficiente, pois define a ordem na qual as linhas são distribuídas nos tiles, garantindo que o agrupamento seja baseado na ordem dos saldos em toda a tabela.
Se quiséssemos calcular os tiles dentro de grupos específicos (por exemplo, departamentos), utilizaríamos o PARTITION BY.

Tarefa

Swipe to start coding

Sua tarefa é aplicar a função NTILE() para obter informações sobre a classe de cada titular de conta.

Você deve:

  1. Especificar o número de classes como argumento da função.
  2. Definir a ordenação pelo saldo da conta para determinar a classe.
  3. Como assumimos que a primeira classe é a de maior saldo e assim por diante, é necessário ordenar os saldos em ordem decrescente.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

close

Awesome!

Completion rate improved to 4.35
Seção 3. Capítulo 5
single

single

some-alt