Leetcode SQL 185: ¿La mejor solución sigue siendo lenta?

Comparativa SQL: funciones de ventana frente a subconsultas para Department Top Three Salaries (LeetCode). Rendimiento en MySQL 8+, uso de DENSE_RANK y prácticas de optimización.

5 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

LeetCode SQL Optimización funciones de ventana vs subconsultas

Quienes practican en LeetCode conocen muy bien el reto 185 Department Top Three Salaries incluido en el Top SQL 50. La plataforma propone dos enfoques correctos para resolverlo y aquí comparamos su comportamiento en escenarios de datos reales con el objetivo de extraer conclusiones prácticas de rendimiento y mantenibilidad.

Comparativa de soluciones oficiales

Solución 1 método tradicional con subconsulta correlacionada. La idea es evaluar fila a fila cuántas personas del mismo departamento tienen un salario mayor que el empleado actual y conservar el registro solo si hay menos de 3 por encima. Funciona, pero implica múltiples evaluaciones y escaneos repetidos sobre la tabla de empleados.

Solución 2 método moderno con funciones de ventana. Se emplea DENSE_RANK con PARTITION BY por departamento y ORDER BY salario de forma descendente para asignar un rango por salario dentro de cada departamento y después se filtran los rangos menores o iguales a 3. Es concisa, fácil de leer y aprovecha optimizaciones del motor.

Prueba de rendimiento con datos de diez mil filas

Entorno de prueba. Se crean 10 departamentos y se insertan 1000 empleados por departamento generando 10000 filas. El conjunto incluye identificadores, nombres y salarios aleatorizados dentro de un rango típico de ejemplo. Con este volumen ya se aprecian diferencias sustanciales entre ambos enfoques.

Resultados. La consulta con DENSE_RANK se ejecutó en milisegundos, mientras que la versión con subconsulta correlacionada tardó más de 5 segundos. Esta brecha es inaceptable en sistemas de producción sensibles a la latencia o con alta concurrencia, y se agrava conforme crece el volumen de datos.

Por qué usar funciones de ventana en MySQL 8 en adelante

- Evitan escaneos y cálculos repetidos. Los patrones con subconsultas tienden a recalcular y a leer varias veces la misma información. Las funciones de ventana realizan los cálculos analíticos en un solo paso lógico.

- Reducen resultados intermedios y tablas temporales. Menos materialización se traduce en menor uso de memoria y disco, y en planes de ejecución más estables.

- Reutilizan cómputo por partición y orden. Bajo las mismas condiciones de PARTITION BY y ORDER BY, el motor puede compartir resultados y minimizar trabajo redundante.

SQLFLASH y la optimización automática

Herramientas de asistencia a SQL como SQLFLASH demuestran que, aunque haya variantes de sintaxis, el resultado es consistente y la versión con funciones de ventana suele ganar en claridad y velocidad. En contextos de inteligencia de negocio y analítica avanzada, esta clase de optimizaciones marca la diferencia.

Buenas prácticas adicionales

- Asegura índices adecuados en columnas de partición y filtrado como departmentId y salary para favorecer el plan de ejecución.

- Prefiere DENSE_RANK cuando necesites top N por grupos con salarios repetidos. Si lo que buscas es posiciones estrictas sin empates, RANK u otras funciones pueden encajar mejor.

- Valida con datos realistas. La prueba con 10000 filas muestra la diferencia, pero en tablas con millones el impacto es mucho mayor.

Cómo te ayuda Q2BSTUDIO

En Q2BSTUDIO desarrollamos aplicaciones a medida y software a medida con foco en rendimiento, escalabilidad y seguridad. Integramos inteligencia artificial e ia para empresas en pipelines de datos, implementamos servicios inteligencia de negocio y cuadros de mando con power bi, y diseñamos arquitecturas eficientes en servicios cloud aws y azure. Si necesitas analítica de datos, optimización SQL o integración de agentes IA en tus procesos, nuestro equipo puede ayudarte a convertir la complejidad técnica en impacto real de negocio.

Si buscas un desarrollo sólido orientado a datos y rendimiento, descubre cómo impulsamos proyectos de software a medida y aplicaciones a medida con arquitecturas modernas visitando desarrollo de aplicaciones y software multiplataforma. Para potenciar reporting, modelos semánticos y gobierno del dato, explora nuestros servicios de inteligencia de negocio con Power BI.

Resumen y recomendaciones

1 Prioriza funciones de ventana siempre que tu motor las soporte. En MySQL 8 en adelante y en la mayoría de sistemas modernos son la opción superior para top N por partición, rankings, acumulados y comparativas entre filas.

2 La versión con DENSE_RANK ofrece claridad, mantenibilidad y mejoras de tiempo de ejecución medibles frente a subconsultas correlacionadas.

3 Acompaña con una estrategia integral de datos. Desde ciberseguridad y cumplimiento hasta automatización de procesos, tu plataforma debe ser consistente extremo a extremo. En Q2BSTUDIO cubrimos de forma transversal inteligencia artificial, ciberseguridad, agentes IA, power bi, servicios cloud aws y azure y automatización, para que el rendimiento SQL se traduzca en resultados sostenibles.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat