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
Practice
Projects
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

close

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