Desafio: 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%
e50%
pertencerá à terceira classe; - Uma pessoa cujo saldo da conta está entre
50%
e75%
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çãoNTILE()
ao conjunto de resultados inteiro, e não a subconjuntos ou partições específicas dos dados.
A cláusulaORDER 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 oPARTITION BY
.
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:
- Especificar o número de classes como argumento da função.
- Definir a ordenação pelo saldo da conta para determinar a classe.
- Como assumimos que a primeira classe é a de maior saldo e assim por diante, é necessário ordenar os saldos em ordem decrescente.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 4.35
Desafio: 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%
e50%
pertencerá à terceira classe; - Uma pessoa cujo saldo da conta está entre
50%
e75%
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çãoNTILE()
ao conjunto de resultados inteiro, e não a subconjuntos ou partições específicas dos dados.
A cláusulaORDER 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 oPARTITION BY
.
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:
- Especificar o número de classes como argumento da função.
- Definir a ordenação pelo saldo da conta para determinar a classe.
- Como assumimos que a primeira classe é a de maior saldo e assim por diante, é necessário ordenar os saldos em ordem decrescente.
Solução
Obrigado pelo seu feedback!
Awesome!
Completion rate improved to 4.35single