Una función de ventana calcula sobre un conjunto de filas relacionadas con la fila actual pero no las colapsa, así que conservas todas las filas y ganas una columna calculada. GROUP BY colapsa las filas en una por grupo. Eso significa que puedes mostrar cada pedido junto al gasto total del cliente en el mismo resultado, algo que con GROUP BY exigiría una subconsulta y volver a unir.
Por qué lo preguntan los entrevistadores
Las funciones de ventana son la línea que separa el SQL básico del intermedio, y la mayor parte del trabajo real de un analista (totales acumulados, rankings, comparaciones entre periodos, deduplicación) depende de ellas. Los entrevistadores quieren el punto de que no colapsan, un entendimiento correcto de PARTITION BY frente a ORDER BY y, si es posible, conciencia de que el marco de ventana por defecto cambia el resultado.
Cómo estructurar tu respuesta
- Abre con la diferencia clave: las filas se conservan, no se colapsan.
- Explica PARTITION BY como la agrupación y ORDER BY como la secuencia.
- Da dos o tres usos reales que hayas escrito.
- Menciona la cláusula de marco y el valor por defecto cuando hay ORDER BY.
Ejemplo de respuesta
La diferencia central es que GROUP BY colapsa y una función de ventana no. Con una ventana conservo todas las filas y añado una columna calculada sobre un conjunto definido de vecinas, así que puedo mostrar cada transacción junto al total acumulado de ese cliente sin un self join. PARTITION BY dice qué filas pertenecen a la misma ventana, por ejemplo particionar por customer_id, y ORDER BY define la secuencia dentro de ella, que es lo que hace funcionar los totales acumulados y las comparaciones con lag. Las uso constantemente: row_number para escoger el registro más reciente por entidad, lag para calcular el cambio mes a mes, sum sobre una partición ordenada para ingresos acumulados. Lo que merece la pena saber es el marco. En cuanto añades ORDER BY, el marco por defecto va desde el inicio de la partición hasta la fila actual, que es exactamente lo que quieres para un total acumulado pero no para un total de toda la partición. Si quiero el total del grupo en cada fila, quito el ORDER BY o fijo el marco de forma explícita.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cuál es el marco de ventana por defecto y cuándo sorprende a la gente?
- ¿Cómo calcularías una media móvil de siete días en SQL?
- ¿Puedes filtrar directamente por el resultado de una función de ventana?
Más preguntas para Analista de datos
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas