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️⃣ SELECT — el punto de partida de toda consulta

Qué hace: define qué columnas o cálculos quieres ver como resultado.

Ejemplo básico — seleccionar columnas específicas

image.png 25.77 KB
Explicación:

  • SELECT elige columnas.
  • FROM indica de qué tabla provienen.
  • Devuelve una lista de todas las ventas mostrando solo esas tres columnas.
Ejemplo intermedio — crear nuevas columnas calculadas

image.png 76.01 KB
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.

Ejemplo simple

image.png 15.78 KB
Explicación:

  • * significa “todas las columnas”.
  • Muestra todos los registros de la tabla ventas.
Ejemplo intermedio — combinando FROM con subconsultas

image.png 102.11 KB

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.

Ejemplo simple — ventas de la región Norte

image.png 32.9 KB
Resultado: mostrará solo las filas donde región sea “Norte”.

Ejemplo — combinar condiciones con operadores lógicos

image.png 42.91 KB

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.

Ejemplo simple — ordenar por fecha ascendente

image.png 43.88 KB

Explicación: muestra las ventas desde la más antigua a la más reciente.

Ejemplo intermedio — ordenar por total descendente y por producto

image.png 54.27 KB
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.).

Ejemplo simple — total de ventas por producto

image.png 61.17 KB

Explicación:

  • Agrupa por producto.
  • Suma los valores de total de cada grupo.
Ejemplo intermedio — ventas promedio y cantidad de ventas por región

image.png 81.29 KB

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.

Ejemplo — mostrar solo productos con total mayor a 500

image.png 82.15 KB

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:

 | 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
🧩 Tipos principales de JOIN

a) INNER JOIN — solo coincidencias entre ambas tablas

image.png 91.96 KB

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).

b) LEFT JOIN — todas las filas de la izquierda, aunque no haya coincidencia

image.png 80.17 KB

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.)

d) FULL OUTER JOIN — todas las filas de ambas tablas

image.png 53.02 KB

Resultado: muestra todas las ventas y todos los clientes, incluso si alguno no coincide.

8️⃣ DISTINCT — eliminar duplicados

Qué hace: devuelve solo valores únicos.

Ejemplo simple

image.png 28.85 KB

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)

Aunque escribes la consulta así:

image.png 39.32 KB

SQL no se ejecuta en ese orden.
El orden lógico real es:

  1. FROM (obtiene los datos)
  2. JOIN (combina tablas)
  3. WHERE (filtra filas)
  4. GROUP BY (agrupa)
  5. HAVING (filtra grupos)
  6. SELECT (selecciona columnas)
  7. ORDER BY (ordena)
  8. 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:

  • 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?

Inscríbete a nuestro curso práctico en www.datdata.com/sql

También síguenos en Instagram: