Analista de Datos: pregunta de entrevista

¿Cuándo usas funciones ventana de SQL?

Las funciones ventana calculan rankings, acumulados, lags o agregados sobre filas relacionadas sin colapsarlas. PARTITION BY define el grupo y ORDER BY la secuencia dentro de la ventana.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Una función de ventana calcula un valor por fila usando un conjunto de filas relacionadas, sin el colapso del GROUP BY. PARTITION BY define qué filas van juntas, ORDER BY define su secuencia, y una cláusula de marco opcional como ROWS BETWEEN limita el rango. ROW_NUMBER, RANK y DENSE_RANK producen ordenaciones; LAG y LEAD alcanzan filas vecinas; SUM o AVG sobre una ventana producen totales acumulados o móviles. Sustituyen self-joins y subconsultas correlacionadas, y se evalúan después de WHERE, así que filtrar por un resultado de ventana requiere una subconsulta o CTE.

Ejemplo

Hallar el pedido más reciente de cada cliente es ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY created_at DESC) seguido de un filtro por número de fila 1 en una consulta externa. Una vista de retención usa LAG(order_date) OVER (PARTITION BY customer_id ORDER BY order_date) para calcular los días desde el pedido anterior en cada fila.

Errores frecuentes

  • Confundir RANK, que deja huecos tras empates, con DENSE_RANK.
  • Filtrar por una columna de ventana en el WHERE de la misma consulta.
  • Olvidar el marco por defecto, de modo que un total acumulado se convierte en total del grupo cuando falta ORDER BY.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Analista de Datos