Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Uso de la Función de Ventana | Algunos Temas Adicionales
Técnicas Avanzadas en SQL

bookDesafí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% y 50% pertenecerá a la tercera clase;
  • Una persona cuyo saldo de cuenta esté entre 50% y 75% 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ón NTILE() al conjunto completo de resultados, no a subconjuntos o particiones específicas de los datos.
La cláusula ORDER 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íamos PARTITION BY.

Tarea

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:

  1. Especificar el número de clases como argumento de la función.
  2. Proporcionar un ordenamiento por el saldo de la cuenta para determinar la clase.
  3. 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

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 4.35

bookDesafí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% y 50% pertenecerá a la tercera clase;
  • Una persona cuyo saldo de cuenta esté entre 50% y 75% 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ón NTILE() al conjunto completo de resultados, no a subconjuntos o particiones específicas de los datos.
La cláusula ORDER 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íamos PARTITION BY.

Tarea

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:

  1. Especificar el número de clases como argumento de la función.
  2. Proporcionar un ordenamiento por el saldo de la cuenta para determinar la clase.
  3. 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

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

close

Awesome!

Completion rate improved to 4.35
Sección 3. Capítulo 5
single

single

some-alt