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
How do I write a query to assign classes using NTILE() for this table?
Can you explain how NTILE() works with an example using these balances?
What would the result look like after adding the class column?
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