Volver a la lista de artículos Artículos
Lectura de 8 minutos

Cómo leer las consultas SQL de otras personas sin perderse

Abrir el SQL de otra persona puede resultar confuso rápidamente. Basta con echar un vistazo a los JOIN, los alias y los filtros para perderse. A continuación, le mostramos cómo desglosar cualquier consulta paso a paso y darle sentido.

Leer tu propio SQL es una cosa. Leer la consulta de 200 líneas de otra persona que alimenta un panel de control clave es algo completamente diferente.

Este artículo te mostrará cómo abordar el SQL de otras personas paso a paso, para que puedas entender lo que hace, detectar problemas y sentirte seguro al realizar cambios. Está escrito para principiantes y analistas junior que ya conocen los conceptos básicos, pero que aún se sienten abrumados por las consultas del «mundo real».

Si estás empezando y necesitas una base sólida, te resultará muy útil seguir primero un camino estructurado, como el curso SQL para principiantes de y el programa SQL de la A a la Z. Estos te proporcionan el vocabulario; este artículo te muestra cómo «leer frases largas» escritas por otros.

Por qué resulta tan difícil leer SQL escrito por otros

Una consulta SQL larga puede parecer peor que el código en otros lenguajes, porque:

  • Cada uno utiliza diferentes hábitos de formato y nomenclatura.
  • Algunos códigos están escritos por personas, otros por herramientas que generan SQL.
  • La consulta suele estar dentro de un informe, un panel de control o un proceso ETL que aún no conoces del todo.
  • No puedes ver el modelo de datos en un solo lugar; tienes que deducirlo a partir de los nombres de las tablas y columnas.

La buena noticia es que existe una forma repetible de «descifrar» estas consultas. No se necesitan conocimientos avanzados de matemáticas, solo un enfoque cuidadoso y paso a paso.

Paso 1: Empieza por el objetivo, no por la sintaxis

Antes de fijarse en las palabras clave, hágase una pregunta sencilla: ¿qué intenta responder esta consulta?

A menudo se puede adivinar a partir del contexto:

  • El nombre del informe o de la pestaña del panel.
  • El nombre del archivo o de la vista (por ejemplo: daily_revenue_summary, churn_risk_scores).
  • El lugar donde se utiliza la consulta (informe semanal de marketing, conciliación financiera, análisis de productos, etc.).

Si no lo sabe, pregunte a un compañero o consulte la documentación. Leer una consulta sin conocer la pregunta que hay detrás es como leer la solución a un rompecabezas sin conocer el rompecabezas.

Una vez que tenga una idea («Probablemente calcula los ingresos por canal y por día»), puede comprobar más tarde si su interpretación de la consulta coincide con eso.

Paso 2: Limpie la consulta para poder ver su forma

Un diseño desordenado dificulta la comprensión de cualquier consulta. No es necesario ser bueno en el formato manual para mejorar esto.

Trabaje en una copia de la consulta (para no romper el código de producción) y haga una o varias de estas cosas:

  • Utilice la opción «Formatear SQL» de su editor, si existe.
  • Pegue la consulta en un formateador SQL en línea.
  • Añada usted mismo saltos de línea básicos:
  • Ponga cada palabra clave principal en su propia línea: SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, ORDER BY.
  • Ponga cada columna seleccionada en una línea separada.
  • Ponga cada JOIN en una nueva línea.

Después de esto, debería poder ver los bloques:

  • Uno exterior SELECT
  • A FROM con varios JOINs
  • WHERE, GROUP BY, HAVING, ORDER BY secciones

Esa separación visual es clave. MuchosLearnSQL.es ejercicios de Conceptos básicos de SQL y cursos prácticos posteriores entrenan implícitamente este ojo para la estructura al exponerle a consultas bien formateadas.

Paso 3: Reconstruye el modelo de datos en tu cabeza

La mayor parte de la confusión proviene de no saber qué significan las tablas y las columnas. Dedique tiempo a esto; valdrá la pena más adelante.

3.1. Consulte las definiciones de las tablas y columnas

Utilice cualquier herramienta que tenga a su disposición:

  • Diagramas de bases de datos (si su equipo los utiliza).
  • Vistas del sistema (por ejemplo, information_schema).
  • comandos «Describir tabla» (DESCRIBE, SHOW COLUMNS, etc.).
  • Documentación interna o un catálogo de datos, si dispone de uno.

Para cada tabla clave de la consulta, responda:

  • ¿Qué representa una fila? (un cliente, un pedido, un evento, una versión de producto, etc.)
  • ¿Qué columnas son identificadores (claves primarias, claves externas, claves de negocio como email, SKU, etc.)?
  • ¿Qué columnas son métricas o atributos (amount, status, created_at, country, etc.)?

3.2. Dibuje un diagrama de unión rápido

Tome una hoja de papel o una pizarra y dibuje:

  • Un recuadro para cada tabla (o CTE) a la que se hace referencia en la consulta.
  • El alias de la tabla entre paréntesis junto al nombre de la tabla (por ejemplo: customers (c)).
  • Líneas entre los recuadros que muestran las JOIN condiciones.

A continuación, etiquete cada línea con las columnas utilizadas para la unión, por ejemplo: c.customer_id = o.customer_id.

Este diagrama facilita mucho la respuesta a la pregunta:

  • ¿Cuál es la tabla «principal»?
  • ¿Qué tablas solo añaden atributos adicionales?
  • ¿Dónde pueden aparecer duplicados?

Paso 4: Lea la consulta en un orden lógico

El SQL se escribe de arriba abajo, pero no se ejecuta así en tu cabeza. Un orden sencillo que funciona para la mayoría de las consultas es:

  1. FROM y JOIN
  2. WHERE
  3. GROUP BY y HAVING
  4. SELECT lista (incluidas expresiones y funciones de ventana)
  5. ORDER BY, LIMIT / TOP / OFFSET

Para una consulta con subconsultas:

  • Comience con la subconsulta más interna.
  • Trate cada subconsulta como «un paso» en una canalización.
  • Describa cada paso brevemente en lenguaje sencillo.

No es necesario reescribir el SQL todavía. Simplemente construya una narrativa: «Primero seleccionamos los clientes activos, luego unimos sus pedidos y, a continuación, agregamos por canal y día».

Este es exactamente el tipo de pensamiento en varios pasos que se practica en los cursos más LearnSQL.es avanzados, como el curso de subconsultas.

Paso 5: Presta atención a los nombres, alias y comentarios

Los alias crípticos son una fuente habitual de confusión. En tu copia preliminar de la consulta, puedes renombrarlos para tu propia comprensión.

Por ejemplo, cambia:

FROM c AS t1
 JOIN o AS t2 ON t1.id = t2.customer_id

por algo como:

FROM customers AS c
 JOIN orders AS o ON c.id = o.customer_id

Del mismo modo, en la SELECT lista:

  • Intenta alinear las expresiones y sus alias.
  • Reescribe los alias poco claros en tus notas:
  • total_amount_30d en lugar de t_amt
  • first_paid_date en lugar de d1

Si hay comentarios, léelos con atención. Podrían explicar:

  • Por qué existe un filtro extraño.
  • Por qué se utiliza un JOIN .
  • Por qué se mantiene una parte de la lógica para garantizar la compatibilidad con versiones anteriores.

Si no hay comentarios, escriba los suyos propios, aunque solo sea para usted. Un comentario sencillo como:

-- Calculate revenue per customer per month, excluding internal test accounts

te ayudará a ti y a los futuros lectores.

Paso 6: Pide ayuda con prudencia (incluido ChatGPT)

A veces, incluso después de todos estos pasos, sigues atascado. Es normal.

Opciones:

  • Pregunta a un compañero que haya escrito o mantenga la consulta.
  • Pide a un analista sénior o a un ingeniero de datos que valide tu comprensión.

Utiliza herramientas como ChatGPT para explicar partes de la consulta, bajo condiciones estrictas:

  • No pegues datos confidenciales, claves API ni nombres de clientes.
  • Elimine o anonimice los nombres de tablas y columnas que revelen información confidencial.
  • Pegue solo la estructura con la que necesita ayuda (por ejemplo, una específica CTE, no todo el proceso).

Haga preguntas específicas:

  • «¿Qué hace esta función de ventana?».
  • «¿Qué filas sobrevivirán a esta unión y filtro?»
  • «¿Es esta lógica GROUP BY coherente con la lista SELECT?»

Trata la IA como otra herramienta más de tu caja de herramientas, similar a un formateador o un visualizador de consultas. Debe apoyar tu razonamiento, no sustituirlo.

Cómo practicar esta habilidad a propósito

Leer el SQL de otras personas es una habilidad que se puede practicar, no solo algo que te ocurre en el trabajo.

Algunas ideas:

  • Toma consultas antiguas de la carpeta de informes de tu equipo y hazles «ingeniería inversa»:
    • ¿Cuál era la pregunta comercial?
    • ¿Qué tablas están involucradas?
    • ¿Cómo describirías la consulta en tres líneas?

En tu propio trabajo:

  • Deja comentarios mejores que los que heredaste.
  • Utiliza alias claros y nombres significativos.
  • Formatea tus consultas de manera coherente.

En LearnSQL.es:

  • Sigue la pista SQL de la A a la Z para ver consultas más complejas pero bien estructuradas.
  • Utiliza SQL avanzado ejercicios de lectura: no te limites a escribir respuestas, lee y explica también las soluciones modelo.

Cuantas más consultas veas, menos te asustará la siguiente. Empezarás a reconocer patrones y dirás: «Ah, esto es igual que el informe de ingresos, pero con una dimensión adicional y un filtro ligeramente diferente».

Reflexiones finales

No es necesario ser un ingeniero de datos sénior para comprender las largas consultas SQL escritas por otros. Solo necesitas un método.

Si quieres un lugar donde practicar estas habilidades y desarrollar una confianza real con SQL, explora el paquete Todo, para siempre SQL. Te da acceso de por vida a todos los cursos, desde los fundamentos de SQL hasta conjuntos de prácticas avanzadas, para que puedas reforzar tus conocimientos básicos, aprender técnicas más profundas y abordar consultas complejas con facilidad.