Desafío: Uso de la Función de Ventana
Consideremos la tabla bank_accounts
que hemos utilizado en las secciones anteriores:
Supongamos que queremos agregar información a la tabla sobre a qué clase pertenece cada usuario según el saldo de su cuenta.
Las clases se determinarán de la siguiente manera:
- Una persona cuyo saldo de cuenta esté en el
25%
inferior pertenecerá a la cuarta clase; - Una persona cuyo saldo de cuenta esté entre
25%
y50%
pertenecerá a la tercera clase; - Una persona cuyo saldo de cuenta esté entre
50%
y75%
pertenecerá a la segunda clase; - Una persona cuyo saldo de cuenta esté en el
25%
superior pertenecerá a la primera clase.
Para resolver este problema, podemos utilizar una función de ventana llamada NTILE()
.
La función NTILE()
es una función de ventana que divide las filas en una partición ordenada en un número especificado de grupos aproximadamente iguales, o "tiles".
Asigna a cada fila un número de grupo, comenzando en 1
, según el grupo al que pertenece.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Note
En el ejemplo, no es necesario especificar una cláusula
PARTITION BY
porque queremos aplicar la funciónNTILE()
al conjunto completo de resultados, no a subconjuntos o particiones específicas de los datos.
La cláusulaORDER BY
es suficiente ya que define el orden en que las filas se distribuyen en los tiles, asegurando que la agrupación se base en el orden de los saldos en toda la tabla.
Si quisiéramos calcular los tiles dentro de grupos específicos (por ejemplo, departamentos), usaríamosPARTITION BY
.
Swipe to start coding
Su tarea es aplicar la función NTILE()
para obtener información sobre la clase de cada titular de cuenta.
Debe:
- Especificar el número de clases como argumento de la función.
- Proporcionar un ordenamiento por el saldo de la cuenta para determinar la clase.
- Como se asume que la primera clase es la que tiene el saldo más alto y así sucesivamente, es necesario ordenar los saldos en orden descendente.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
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
Desafío: Uso de la Función de Ventana
Desliza para mostrar el menú
Consideremos la tabla bank_accounts
que hemos utilizado en las secciones anteriores:
Supongamos que queremos agregar información a la tabla sobre a qué clase pertenece cada usuario según el saldo de su cuenta.
Las clases se determinarán de la siguiente manera:
- Una persona cuyo saldo de cuenta esté en el
25%
inferior pertenecerá a la cuarta clase; - Una persona cuyo saldo de cuenta esté entre
25%
y50%
pertenecerá a la tercera clase; - Una persona cuyo saldo de cuenta esté entre
50%
y75%
pertenecerá a la segunda clase; - Una persona cuyo saldo de cuenta esté en el
25%
superior pertenecerá a la primera clase.
Para resolver este problema, podemos utilizar una función de ventana llamada NTILE()
.
La función NTILE()
es una función de ventana que divide las filas en una partición ordenada en un número especificado de grupos aproximadamente iguales, o "tiles".
Asigna a cada fila un número de grupo, comenzando en 1
, según el grupo al que pertenece.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Note
En el ejemplo, no es necesario especificar una cláusula
PARTITION BY
porque queremos aplicar la funciónNTILE()
al conjunto completo de resultados, no a subconjuntos o particiones específicas de los datos.
La cláusulaORDER BY
es suficiente ya que define el orden en que las filas se distribuyen en los tiles, asegurando que la agrupación se base en el orden de los saldos en toda la tabla.
Si quisiéramos calcular los tiles dentro de grupos específicos (por ejemplo, departamentos), usaríamosPARTITION BY
.
Swipe to start coding
Su tarea es aplicar la función NTILE()
para obtener información sobre la clase de cada titular de cuenta.
Debe:
- Especificar el número de clases como argumento de la función.
- Proporcionar un ordenamiento por el saldo de la cuenta para determinar la clase.
- Como se asume que la primera clase es la que tiene el saldo más alto y así sucesivamente, es necesario ordenar los saldos en orden descendente.
Solución
¡Gracias por tus comentarios!
Awesome!
Completion rate improved to 4.35single