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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat