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

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
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
Explicación:

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


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
Resultado: mostrará solo las filas donde región sea “Norte”.

Ejemplo — combinar condiciones con operadores lógicos


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


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

Ejemplo intermedio — ordenar por total descendente y por producto
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


Explicación:

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


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


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

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

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

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

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

Ejemplo

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.

Ejemplo

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í:

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: