Logo Arturo Navarro

5 Consultas SQL que todo Analista de Datos Senior Debería Dominar (y por qué te salvarán la vida)

Data, SQL

Si eres un analista de datos experimentado, sabes que SQL es tu navaja suiza. No solo te permite extraer datos, sino que también te ayuda a descubrir insights valiosos que impulsan decisiones comerciales importantes. Pero, ¿cuáles son esas consultas que realmente marcan la diferencia? Aquí te presento cinco que, en mi experiencia, se han convertido en mis fieles compañeras:

El clásico GROUP BY con agregaciones:

Olvídate de las tablas interminables y sumérgete en los resúmenes. ¿Quieres saber el total de ventas por producto, el número de usuarios por país o el promedio de tiempo de sesión por fuente de tráfico? GROUP BY junto con funciones como SUM, COUNT, AVG te permiten obtener estos datos de forma rápida y sencilla.

SELECT producto, SUM(ventas) AS total_ventas
FROM tabla_ventas
GROUP BY producto;

El poderoso JOIN:

Tus datos rara vez viven en una sola tabla. JOIN te permite combinar información de diferentes tablas, como si estuvieras uniendo las piezas de un rompecabezas. ¿Necesitas saber qué clientes compraron un producto específico? Un JOIN entre la tabla de clientes y la tabla de ventas te dará la respuesta.

SELECT c.nombre, p.producto
FROM clientes c
JOIN ventas v ON c.id_cliente = v.id_cliente
JOIN productos p ON v.id_producto = p.id_producto;

El versátil CASE WHEN:

A veces, los datos no vienen en el formato que necesitas. CASE WHEN te permite crear nuevas categorías o transformar valores existentes. ¿Quieres clasificar a tus clientes en grupos de alto, medio y bajo valor? CASE WHEN es tu aliado.

SELECT nombre,
       CASE WHEN ventas > 1000 THEN 'Alto valor'
            WHEN ventas >= 500 THEN 'Medio valor'
            ELSE 'Bajo valor' END AS categoria_cliente
FROM clientes;

El ingenioso ROW_NUMBER():

¿Necesitas encontrar los 10 clientes más importantes, los productos más vendidos o las páginas más visitadas? ROW_NUMBER() te permite asignar un número a cada fila dentro de un grupo ordenado, lo que facilita la selección de los primeros o últimos registros.

SELECT *
FROM (
    SELECT producto, SUM(ventas) AS total_ventas,
           ROW_NUMBER() OVER (ORDER BY SUM(ventas) DESC) AS rn
    FROM tabla_ventas
    GROUP BY producto
) AS subquery
WHERE rn <= 10;

El imprescindible WITH (Common Table Expressions):

Cuando tus consultas se vuelven complejas, WITH te permite dividirlas en partes más manejables. Puedes crear subconsultas temporales que actúan como tablas virtuales, lo que simplifica la lógica y mejora la legibilidad de tu código SQL.

WITH clientes_top AS (
    SELECT id_cliente, SUM(ventas) AS total_ventas
    FROM tabla_ventas
    GROUP BY id_cliente
    ORDER BY total_ventas DESC
    LIMIT 10
)
SELECT c.nombre, ct.total_ventas
FROM clientes c
JOIN clientes_top ct ON c.id_cliente = ct.id_cliente;

Bonus Track: ¡Aprende a amar las ventanas (Window Functions)!

Las funciones de ventana, como LAG, LEAD, RANK y NTILE, te permiten realizar cálculos complejos basados en el contexto de un conjunto de filas. Dominarlas te abrirá un mundo de posibilidades analíticas.

Estas son solo algunas de las muchas consultas SQL que te serán útiles como analista de datos senior. Recuerda que la práctica hace al maestro, así que no dudes en experimentar y aplicar estas consultas en tus propios proyectos. ¡Y no te olvides de compartir tus trucos y consejos favoritos en los comentarios!

Post Tags :

Data, SQL