Digital Marketing Academy · Lección

SELECT, WHERE, GROUP BY

Agregue datos de campañas

Lección 2 de 413 pasos

SELECT, WHERE, GROUP BY es una lección gratuita de Digital Marketing Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Digital Marketing Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Digital Marketing Academy incluye 4 lecciones en total.

Los tres verbos

Casi todas las métricas de marketing se construyen con tres cláusulas: SELECT elige las columnas, WHERE filtra las filas y GROUP BY convierte las filas en segmentos.

Domine este trío y podrá responder por su cuenta a la mayoría de las preguntas analíticas del día a día.

SELECT channel, SUM(revenue) AS revenue
FROM orders
GROUP BY channel;

SELECT: elegir columnas

SELECT enumera los datos que desea obtener. Puede cambiar el nombre de las columnas con AS para que el resultado sea más legible y calcular nuevos valores directamente en la consulta.

Mantenga los conjuntos de resultados concisos: extraiga solo las columnas que realmente necesite, especialmente en tablas grandes.

SELECT campaign_id AS campaign,
       spend,
       spend * 1.2 AS spend_with_fees
FROM campaigns;

WHERE: filtrar filas

WHERE conserva únicamente las filas que cumplen una condición. Combine condiciones con AND y OR para delimitar un segmento.

Los filtros de fecha son fundamentales para los profesionales del marketing, ya que definen con precisión el periodo del informe.

SELECT *
FROM sessions
WHERE channel = 'email'
  AND session_date >= DATE '2026-01-01'
  AND device = 'mobile';

Filtrado con IN y BETWEEN

IN busca cualquier valor de una lista, lo que resulta perfecto para varias campañas a la vez. BETWEEN abarca un intervalo, ideal para periodos de fechas.

Estas cláusulas mantienen los filtros complejos breves y legibles, en lugar de convertirlos en largas cadenas de OR.

SELECT order_id, revenue
FROM orders
WHERE channel IN ('paid_search', 'paid_social')
  AND order_date BETWEEN DATE '2026-03-01' AND DATE '2026-03-31';

GROUP BY: segmentar

GROUP BY agrupa las filas que comparten un valor en una fila por grupo. Combínelo con funciones de agregación como SUM, COUNT y AVG para obtener métricas por segmento.

Así es como convierte los eventos sin procesar en una tabla de rendimiento desglosada por canal.

SELECT channel,
       COUNT(*) AS sessions,
       SUM(revenue) AS revenue
FROM sessions
GROUP BY channel;

Funciones de agregación

SUM totaliza los ingresos, COUNT cuenta los eventos, AVG calcula la media y COUNT(DISTINCT ...) cuenta los usuarios únicos.

Los recuentos de valores distintos son importantes en marketing: el total de sesiones y el número de visitantes únicos son cifras muy diferentes.

SELECT campaign_id,
       COUNT(*) AS clicks,
       COUNT(DISTINCT user_id) AS reach,
       AVG(revenue) AS avg_order
FROM orders
GROUP BY campaign_id;

Agrupación por varias columnas

Agrupe por más de una columna para crear una matriz, como canal por dispositivo. Cada combinación única se convierte en su propia fila.

Esto permite una segmentación más profunda sin exportar nada a una hoja de cálculo.

SELECT channel, device,
       COUNT(*) AS sessions
FROM sessions
GROUP BY channel, device
ORDER BY channel, sessions DESC;

HAVING: Filtrado de grupos

WHERE filtra las filas antes de agruparlas; HAVING filtra los grupos después de la agregación. Use HAVING para conservar solo los segmentos que superen un umbral.

Por ejemplo, puede mostrar solo las campañas que generaron más de 100 pedidos.

SELECT campaign_id, COUNT(*) AS orders
FROM orders
GROUP BY campaign_id
HAVING COUNT(*) > 100
ORDER BY orders DESC;

Ordenación y limitación

ORDER BY ordena los resultados para que las filas más importantes aparezcan primero. LIMIT establece un límite en la cantidad de resultados, lo que resulta ideal para informes de tipo top-N.

Juntas, estas cláusulas responden al instante a la pregunta «¿cuáles son mis 5 campañas principales por ingresos?».

SELECT campaign_id, SUM(revenue) AS revenue
FROM orders
GROUP BY campaign_id
ORDER BY revenue DESC
LIMIT 5;

Agregación condicional

FILTER (o CASE dentro de una función de agregación) permite que una sola consulta calcule varias métricas condicionales a la vez, como los ingresos de clientes nuevos frente a los de clientes recurrentes.

Así se evita ejecutar varias consultas y se mantienen los segmentos perfectamente alineados.

SELECT channel,
       SUM(revenue) FILTER (WHERE is_new_customer) AS new_rev,
       SUM(revenue) FILTER (WHERE NOT is_new_customer) AS repeat_rev
FROM orders
GROUP BY channel;

Integrarlo todo

Una consulta completa combina todas las cláusulas: filtra las filas con WHERE, agrupa, filtra los grupos con HAVING y, por último, ordena y limita los resultados.

Si la lee de arriba abajo, cuenta una historia analítica completa sobre sus canales.

SELECT channel, SUM(revenue) AS revenue
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY channel
HAVING SUM(revenue) > 1000
ORDER BY revenue DESC;

Comprobación rápida

Quiere obtener solo los grupos de campañas con más de 50 pedidos. ¿Qué cláusula filtra los grupos agregados?

Resumen

SELECT selecciona columnas, WHERE filtra filas, GROUP BY crea segmentos, HAVING filtra grupos y ORDER BY junto con LIMIT dan forma al resultado.

Con la agregación condicional puede calcular varias métricas en una sola pasada. A continuación: combinar datos de varias tablas con JOIN.

Gratis para empezar

Aprende Digital Marketing Academy con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
63
Lecciones
239

Preguntas frecuentes

¿La lección «SELECT, WHERE, GROUP BY» es gratis?

Sí — el texto completo de «SELECT, WHERE, GROUP BY» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Digital Marketing Academy, actualiza a CoddyKit PRO. El curso de Digital Marketing Academy incluye 4 lecciones en total.

¿Qué aprenderé en «SELECT, WHERE, GROUP BY»?

Agregue datos de campañas Practicas Digital Marketing Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Digital Marketing Academy?

No se requiere experiencia previa. Digital Marketing Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «SELECT, WHERE, GROUP BY»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Digital Marketing Academy?

Sí. Cada lección de Digital Marketing Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Por qué los profesionales del marketing aprenden SQL
  2. SELECT, WHERE, GROUP BY
  3. Unión de tablas de marketing
  4. Consultas de cohortes y embudos
← Volver a Digital Marketing Academy