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
Quizzes & Challenges
Quizzes
Challenges
/
Otimização de SQL e Recursos de Consulta

bookDesafio: Utilizando Função Window

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 usar 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
)
Note
Nota

No exemplo, não precisamos 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 a divisão seja baseada na ordem dos salários em toda a tabela.
Se quiséssemos calcular os tiles dentro de grupos específicos (por exemplo, departamentos), usaríamos o PARTITION BY.

Tarefa

Swipe to start coding

Preencha as lacunas para utilizar a função NTILE() de modo que cada titular de conta seja atribuído a uma classe de 1 a 4, onde a classe 1 possui os maiores saldos.

  • Utilize 4 como o número de classes;
  • Ordene pela coluna balance em ordem decrescente;
  • Certifique-se de que o resultado exiba account_holder, balance e sua respectiva class.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Suggested prompts:

How do I use the NTILE() function to classify users into these classes?

Can you show an example SQL query that implements this classification?

What does the output table look like after adding the class information?

close

Awesome!

Completion rate improved to 4.55

bookDesafio: Utilizando Função Window

Deslize para mostrar o menu

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 usar 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
)
Note
Nota

No exemplo, não precisamos 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 a divisão seja baseada na ordem dos salários em toda a tabela.
Se quiséssemos calcular os tiles dentro de grupos específicos (por exemplo, departamentos), usaríamos o PARTITION BY.

Tarefa

Swipe to start coding

Preencha as lacunas para utilizar a função NTILE() de modo que cada titular de conta seja atribuído a uma classe de 1 a 4, onde a classe 1 possui os maiores saldos.

  • Utilize 4 como o número de classes;
  • Ordene pela coluna balance em ordem decrescente;
  • Certifique-se de que o resultado exiba account_holder, balance e sua respectiva class.

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!

Seção 3. Capítulo 4
single

single

some-alt