Aprender funciones de SQL es importante, pero antes de llegar a las funciones, hay que dominar las sentencias que estructuran cualquier consulta: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, JOIN, entre otras.
Estas son la base del lenguaje y lo que realmente te permite pedirle a una base de datos lo que necesitas saber.
A continuación exploraremos las sentencias más usadas para análisis de datos, con ejemplos explicados paso a paso.
📘 Dataset de ejemplo: ventas
| venta_id | fecha | cliente_id | producto | cantidad | precio_unitario | total | región
| 1 | 2024-12-01 | 101 | A | 2 | 100 | 200 | Norte
| 2 | 2025-01-15 | 102 | B | 1 | 250 | 250 | Sur
| 3 | 2025-02-10 | 101 | A | 3 | 100 | 300 | Norte
| 4 | 2025-03-05 | 103 | C | 5 | 80 | 400 | Este
| 5 | 2025-03-20 | NULL | B | 2 | 250 | 500 | Sur
| 6 | 2025-04-01 | 104 | A | 1 | 120 | 120 | Norte
| 7 | 2024-11-30 | 105 | C | 2 | 80 | 160 | Oeste
| 8 | 2025-02-15 | 102 | B | 4 | 250 | 1000 | Sur
| 1 | 2024-12-01 | 101 | A | 2 | 100 | 200 | Norte
| 2 | 2025-01-15 | 102 | B | 1 | 250 | 250 | Sur
| 3 | 2025-02-10 | 101 | A | 3 | 100 | 300 | Norte
| 4 | 2025-03-05 | 103 | C | 5 | 80 | 400 | Este
| 5 | 2025-03-20 | NULL | B | 2 | 250 | 500 | Sur
| 6 | 2025-04-01 | 104 | A | 1 | 120 | 120 | Norte
| 7 | 2024-11-30 | 105 | C | 2 | 80 | 160 | Oeste
| 8 | 2025-02-15 | 102 | B | 4 | 250 | 1000 | Sur
1️⃣ SELECT — el punto de partida de toda consulta
Qué hace: define qué columnas o cálculos quieres ver como resultado.
- SELECT elige columnas.
- FROM indica de qué tabla provienen.
- Devuelve una lista de todas las ventas mostrando solo esas tres columnas.
Qué hace:
- Crea una nueva columna (subtotal) calculando cantidad × precio_unitario.
- El alias AS asigna un nombre a la columna derivada.
Tip: puedes usar alias descriptivos para que tus consultas sean más legibles, especialmente cuando comienzas a incluir cálculos o funciones.
2️⃣ FROM — define la fuente de los datos
Qué hace: especifica la tabla o vista de donde se obtendrán los datos.
Sin FROM, SQL no sabría dónde buscar la información.
Sin FROM, SQL no sabría dónde buscar la información.
Explicación:
- * significa “todas las columnas”.
- Muestra todos los registros de la tabla ventas.
Qué hace:
- Dentro de los paréntesis se calcula el promedio de ventas por producto.
- La subconsulta se llama resumen y se usa como fuente (FROM).
Tip: puedes tratar cualquier subconsulta como una tabla temporal para crear reportes más complejos paso a paso.
3️⃣ WHERE — filtrar filas
Qué hace: devuelve solo las filas que cumplen una o más condiciones.
Resultado: mostrará solo las filas donde región sea “Norte”.
Explicación:
- AND exige que ambas condiciones se cumplan.
- En nuestro dataset, devolverá las filas 5 y 8 (ventas del Sur con total mayor a 400).
Otros operadores útiles:
- OR → al menos una condición verdadera.
- NOT → excluye coincidencias.
- IN ('A','B') → lista de valores.
- BETWEEN 100 AND 500 → rango de valores.
- IS NULL / IS NOT NULL → comprobar valores nulos.
4️⃣ ORDER BY — ordenar resultados
Qué hace: ordena el resultado por una o más columnas.
Explicación: muestra las ventas desde la más antigua a la más reciente.
Qué hace:
- Ordena por total de mayor a menor.
- Si hay empates, ordena por producto alfabéticamente.
5️⃣ GROUP BY — agrupar datos
Qué hace: agrupa filas para realizar cálculos agregados (SUM, COUNT, AVG, etc.).
Explicación:
- Agrupa por producto.
- Suma los valores de total de cada grupo.
Qué hace:
- Cuenta cuántas ventas hay por región.
- Calcula el promedio del total en cada región.
6️⃣ HAVING — filtrar después de agrupar
Qué hace: se usa con GROUP BY para filtrar los resultados agregados.
Explicación:
- WHERE no puede usarse aquí porque el filtro depende de una agregación (SUM).
- HAVING actúa después del GROUP BY.
Resultado: mostrará solo los productos cuyas ventas totales superen 500.
7️⃣ JOIN — combinar datos de varias tablas
Qué hace: une tablas relacionadas según una o más columnas clave.
Veamos un ejemplo práctico con una tabla adicional llamada clientes:
Veamos un ejemplo práctico con una tabla adicional llamada clientes:
| cliente_id | nombre_cliente | ciudad
| 101 | Laura Pérez | Monterrey
| 102 | Juan Gómez | Mérida
| 103 | Ana Ruiz | Puebla
| 104 | Carlos Díaz | Tijuana
| 105 | Sofía López | Guadalajara
| 101 | Laura Pérez | Monterrey
| 102 | Juan Gómez | Mérida
| 103 | Ana Ruiz | Puebla
| 104 | Carlos Díaz | Tijuana
| 105 | Sofía López | Guadalajara
🧩 Tipos principales de JOIN
Qué hace:
- Une ventas y clientes donde los cliente_id coinciden.
- Excluye las filas donde cliente_id es NULL o no tiene coincidencia.
Resultado: 7 filas (una se excluye por NULL en cliente_id).
Qué hace:
- Muestra todas las filas de ventas.
- Si no hay cliente, nombre_cliente será NULL.
Resultado: 8 filas (incluye la venta sin cliente asignado).
c) RIGHT JOIN — todas las filas de la derecha
(Lo opuesto al LEFT; menos común en análisis, pero útil cuando quieres todos los clientes aunque no tengan ventas.)
Resultado: muestra todas las ventas y todos los clientes, incluso si alguno no coincide.
8️⃣ DISTINCT — eliminar duplicados
Qué hace: devuelve solo valores únicos.
Resultado: A, B, C (solo una vez cada uno).
Ejemplo intermedio — combinando varias columnas
SELECT DISTINCT producto, región
FROM ventas;
Explicación: devuelve pares únicos de producto y región.
9️⃣ LIMIT / TOP / FETCH — limitar número de filas
Qué hace: devuelve solo las primeras N filas (muy usado para explorar datos).
Explicación:
- Ordena las ventas de más recientes a más antiguas.
- LIMIT 3 devuelve solo las tres últimas.
(En SQL Server se usa TOP 3 en lugar de LIMIT 3.)
🔟 AS — alias de columnas o tablas
Qué hace: renombra temporalmente columnas o tablas, útil para legibilidad.
Ventaja: los alias cortos (v, c) hacen la consulta más clara, y los alias descriptivos (producto_vendido, monto_total) mejoran la presentación de resultados.
🧠 Orden lógico de ejecución (muy importante)
SQL no se ejecuta en ese orden.
El orden lógico real es:
El orden lógico real es:
- FROM (obtiene los datos)
- JOIN (combina tablas)
- WHERE (filtra filas)
- GROUP BY (agrupa)
- HAVING (filtra grupos)
- SELECT (selecciona columnas)
- ORDER BY (ordena)
- LIMIT (limita el resultado final)
Entender este flujo mental ayuda muchísimo a depurar consultas y evitar errores.
Dominar SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY y JOIN es más importante que memorizar funciones.
Estas sentencias son las que te permiten estructurar cualquier análisis en SQL:
Estas sentencias son las que te permiten estructurar cualquier análisis en SQL:
- Filtrar información relevante
- Combinar fuentes
- Crear resúmenes
- Ordenar y presentar resultados
Una vez las domines, las funciones como SUM(), AVG(), COUNT() o CASE se vuelven simples complementos.
¿Quieres aprender más de SQL?
Ver esta publicación en Instagram