Qué son las cosas

¿Qué es una query y cómo leer una por primera vez?

5 min de lectura

Una pregunta escrita en código

La palabra «query» significa «consulta» en inglés. En el contexto de SQL, una query es una instrucción que se envía a una base de datos para obtener información específica. Es, literalmente, una pregunta formulada en un lenguaje que la base de datos entiende.

La buena noticia es que SQL se diseñó para ser legible. Las instrucciones se parecen a oraciones en inglés, y con un poco de práctica es posible leer una query compleja y entender qué hace, incluso sin saber escribirla desde cero.

Todas las queries del catálogo de Queryteca siguen la misma estructura básica. Entender esa estructura es la clave para leer cualquier consulta SQL, independientemente de su complejidad.

Las cinco cláusulas fundamentales

Toda query SQL se construye con cláusulas. Las cinco más importantes son:

SELECT    -- Qué columnas quiero ver
FROM      -- De qué tabla saco los datos
WHERE     -- Qué filtros aplico
GROUP BY  -- Cómo agrupo los resultados
ORDER BY  -- Cómo ordeno los resultados

No todas las cláusulas son obligatorias en cada consulta. La más simple de las queries solo necesita SELECT y FROM:

SELECT event_name, event_date
FROM mi_tabla_de_eventos

Esta consulta dice: «quiero ver las columnas event_name y event_date de la tabla mi_tabla_de_eventos». Nada más. Sin filtros, sin agrupaciones, sin ordenamiento. Es el equivalente SQL de abrir una hoja de cálculo y mirar dos columnas.

A medida que se necesitan análisis más específicos, se van añadiendo cláusulas. Cada cláusula adicional refina la pregunta.

Lectura guiada de una query real

A continuación se muestra una query real del catálogo de Queryteca, desglosada línea por línea. Es una versión simplificada de la query de top landing pages orgánicas:

SELECT
  page_location AS landing_page,
  COUNT(DISTINCT session_id) AS sesiones
FROM
  tabla_de_eventos
WHERE
  medio = 'organic'
  AND evento = 'session_start'
GROUP BY
  landing_page
ORDER BY
  sesiones DESC
LIMIT 50

Lectura paso a paso:

  1. SELECT: se pide la columna page_location (renombrada como landing_page con la palabra clave AS) y el conteo de sesiones únicas mediante la función COUNT(DISTINCT session_id).
  2. FROM: los datos se toman de tabla_de_eventos.
  3. WHERE: se aplican dos filtros combinados con AND: solo tráfico orgánico (medio = 'organic') y solo eventos de inicio de sesión (evento = 'session_start'). Ambas condiciones deben cumplirse.
  4. GROUP BY: los resultados se agrupan por landing_page. Esto significa que se contarán las sesiones de cada página por separado, en lugar de sumar todas juntas.
  5. ORDER BY: se ordena de mayor a menor número de sesiones (DESC = descendente). Sin esta cláusula, el orden sería arbitrario.
  6. LIMIT: se limita a los 50 primeros resultados. Sin esta cláusula, la query devolvería todas las páginas.

En español, esta query dice: «Muestra las 50 páginas de entrada con más sesiones orgánicas, ordenadas de mayor a menor».

Palabras clave que conviene reconocer

Algunas palabras reservadas aparecen constantemente en las queries SQL. Reconocerlas facilita la lectura:

  • AS: renombra una columna o tabla para darle un alias más legible. page_location AS landing_page muestra la columna con el nombre «landing_page» en los resultados.
  • DISTINCT: elimina duplicados del conteo. COUNT(DISTINCT user_id) cuenta usuarios únicos, no eventos repetidos del mismo usuario.
  • AND / OR: combinan condiciones en el WHERE. AND requiere que ambas se cumplan. OR requiere al menos una.
  • DESC / ASC: dirección de ordenamiento. DESC es de mayor a menor (descendente), ASC de menor a mayor (ascendente). Si no se especifica, el valor por defecto es ASC.
  • NULL: representa la ausencia de valor. No es cero ni una cadena vacía: es «no hay dato». Una columna puede contener NULL cuando la información no está disponible.
  • BETWEEN: define un rango. fecha BETWEEN '2026-04-01' AND '2026-04-30' incluye todas las fechas de abril.

Funciones: operaciones sobre los datos

Las funciones transforman o agregan datos. Se reconocen porque van seguidas de paréntesis. Las más comunes en consultas SEO:

  • COUNT(): cuenta filas. COUNT(*) cuenta todas las filas, COUNT(DISTINCT x) cuenta valores únicos de la columna x.
  • SUM(): suma valores numéricos. SUM(clicks) suma todos los clics de las filas seleccionadas.
  • AVG(): calcula el promedio. AVG(position) devuelve la posición media de las filas.
  • MAX() / MIN(): valor máximo o mínimo. MAX(event_date) devuelve la fecha más reciente.
  • ROUND(): redondea decimales. ROUND(3.14159, 2) devuelve 3.14. Es habitual usarlo para que los porcentajes y promedios sean legibles.
  • CONCAT(): une textos. CONCAT(nombre, ' ', apellido) combina dos columnas en una.

No hay que memorizar

El objetivo al empezar no es memorizar todas las cláusulas y funciones, sino desarrollar la capacidad de leer una query y entender su intención. La escritura se desarrolla con la práctica, y es perfectamente válido empezar copiando queries existentes y modificándolas para adaptarlas a necesidades específicas.

El catálogo de Queryteca está diseñado exactamente para eso: cada query incluye una explicación línea por línea que facilita la comprensión progresiva. No hace falta entender una query completa de golpe: se puede ir línea por línea, consultando qué hace cada parte.

El siguiente paso lógico es entender las diferencias entre GA4, BigQuery y Looker Studio para saber dónde se ejecutan estas queries y cómo se relacionan las herramientas entre sí.

Queries para practicar

Principiante

URLs con más clics totales en GSC

Identifica las páginas que reciben más clics desde los resultados de búsqueda de Google. Permite conocer las URLs más valiosas del sitio desde la perspectiva de SEO.

Principiante

Performance por dispositivo (mobile, desktop, tablet)

Compara el rendimiento de búsqueda por tipo de dispositivo. Permite detectar diferencias de posicionamiento o CTR entre mobile y desktop que indiquen problemas de UX o indexación.

¿Listo para practicar? Explora el catálogo de queries

Ver catálogo