Ejemplos de consultas SQL de Ghost in the SQL Data: consultas detectivescas prácticas para resolver todos los casos
Aprende ejemplos prácticos de consultas SQL de Ghost in the SQL Data para filtrar, unir y agregar datos de llamadas de emergencia de París y resolver cada investigación.
Por qué importan los ejemplos de consultas SQL en Ghost in the SQL Data
Ghost in the SQL Data es un juego de detectives donde el arma homicida es una sentencia SELECT. Publicado el 29 de octubre de 2026 por el desarrollador en solitario Isaac Menard, el juego te sumerge en un año de llamadas a la centralita de emergencias de París y te pide que descubras la verdad con nada más que SQL. Si alguna vez te has quedado mirando un cursor parpadeante mientras una escuela arde en el expediente del caso, ya sabes por qué importan unos buenos ejemplos de consultas SQL de Ghost in the SQL Data: el juego te entrega una pregunta, no un tutorial, y espera que construyas tú mismo la respuesta.
Según la página oficial de la tienda de Steam del juego, los primeros casos enseñan lo básico mientras que los posteriores "solo te dan la pregunta". Ese diseño significa que tu vocabulario de consultas se convierte en tu caja de herramientas de detective. Esta guía desglosa los patrones que te llevan desde el primer registro de llamadas filtrado hasta las uniones de múltiples tablas que revelan a un llamante catorce minutos antes de que el primer testigo viera humo.
Las tablas principales que consultarás
Antes de escribir una sola línea, entiende qué estás consultando. El juego se centra en los registros de llamadas de emergencia de París, y los informes de la comunidad sugieren que los casos giran en torno a un pequeño conjunto de tablas relacionadas: registros de llamadas, declaraciones de testigos, registros de ubicación e informes de incidentes. Los nombres exactos de las tablas varían según el caso, así que inspecciona siempre primero el esquema.
| Tipo de tabla | Qué suele contener | Por qué importa |
|---|---|---|
| Registro de llamadas | Marcas de tiempo, ID del llamante, motivo de la llamada | Establece la línea temporal |
| Declaraciones de testigos | Hora observada, ubicación, descripción | Contrasta el registro de llamadas |
| Registros de ubicación | Direcciones, distritos, puntos de referencia | Sitúa los eventos en París |
| Informes de incidentes | Hora oficial, categoría, resultado | Confirma o contradice las llamadas |
Una consulta rápida de descubrimiento es tu primer movimiento en casi todos los casos. Ejecuta algo como SELECT * FROM call_log LIMIT 10; para ver los nombres de las columnas, luego SELECT COUNT(*) FROM call_log; para calibrar la escala. La experiencia de los jugadores demuestra de forma consistente que dedicar dos minutos a mapear el esquema ahorra veinte minutos de conjeturas después.
Filtrado y ordenación: tus primeros movimientos detectivescos
La mayoría de los casos comienzan con una ventana temporal. El escenario insignia —una llamada que informa de un incendio en una escuela catorce minutos antes de que el primer testigo lo viera— es un problema puro de WHERE y ORDER BY. Necesitas las filas que caen antes de una marca de tiempo conocida, ordenadas para que aparezca primero la más temprana.
SELECT call_time, caller_id, reason
FROM call_log
WHERE call_time < '2026-03-14 08:42:00'
ORDER BY call_time ASC;
Esta es la columna vertebral de los ejemplos de consultas SQL de Ghost in the SQL Data que reutilizarás constantemente. Sustituye la marca de tiempo literal por una subconsulta que extraiga la hora de observación del testigo, y la consulta se vuelve autoajustable entre casos.
| Patrón de filtro | Uso de ejemplo | Palabra clave |
|---|---|---|
| Rango de fechas | Llamadas de un día concreto | BETWEEN |
| Coincidencia de texto | Motivo que contiene "fire" | LIKE '%fire%' |
| Exclusión | Ignorar llamadas de prueba o duplicadas | NOT IN |
| Comprobación de nulos | Llamante sin nombre o dirección faltante | IS NULL |
El caso del billete de metro sin nombre es un puzle clásico de IS NULL. Cuando un campo está en blanco, = NULL no devuelve nada: debes usar IS NULL. Esa única distinción desconcierta a muchos investigadores novatos, según los informes de la comunidad.
Unir tablas para conectar pistas
Las consultas de una sola tabla resuelven los calentamientos. Los casos reales exigen uniones. Cuando un registro de llamadas hace referencia a un location_id y la dirección vive en otra tabla, las enlazas con JOIN. Aquí es donde los ejemplos de consultas SQL de Ghost in the SQL Data pasan del filtrado a la deducción real.
SELECT c.call_time, c.reason, l.address, l.arrondissement
FROM call_log c
JOIN locations l ON c.location_id = l.location_id
WHERE l.arrondissement = '5e'
ORDER BY c.call_time;
Un LEFT JOIN es tu red de seguridad cuando sospechas que faltan datos; por ejemplo, las llamadas sin un registro de ubicación coincidente pueden ser sospechosas por sí mismas. El caso del robo de la corona del Musée d'Orsay recompensa a los investigadores que advierten los registros que no se unen limpiamente.
| Tipo de unión | Devuelve | Uso detectivesco |
|---|---|---|
INNER JOIN | Solo filas coincidentes | Confirmar vínculos conocidos |
LEFT JOIN | Todas las filas izquierdas más las coincidencias | Encontrar datos huérfanos o faltantes |
SELF JOIN | Tabla unida consigo misma | Detectar llamantes recurrentes |
Agregación y agrupación para cazar patrones
A veces la respuesta no es una sola fila sino un patrón. GROUP BY con funciones de agregación convierte un año de llamadas en un perfil de sospechoso. Contar llamadas por llamante, promediar intervalos de respuesta o contabilizar incidentes por distrito dependen todos de la misma estructura.
SELECT caller_id, COUNT(*) AS call_count
FROM call_log
GROUP BY caller_id
HAVING COUNT(*) > 3
ORDER BY call_count DESC;
La cláusula HAVING filtra grupos después de la agregación; piénsala como un WHERE para resúmenes. En el caso del incendio escolar, agrupar por llamante y filtrar por recuentos altos puede sacar a la luz a un bromista en serie o a un conjunto coordinado de llamadas. Los jugadores de la comunidad informan de que HAVING es la cláusula más infrautilizada entre los principiantes, y dominarla desbloquea varios casos de mitad del juego.
| Agregado | Pregunta que responde | Encaje en el caso |
|---|---|---|
COUNT | ¿Cuántas llamadas? | Llamantes recurrentes |
AVG | ¿Intervalo medio entre eventos? | Anomalías en la línea temporal |
MIN / MAX | ¿Actividad más temprana y más tardía? | Sospechosos que actúan primero |
SUM | ¿Duración o cantidad total? | Patrones de duración de llamadas |
Subconsultas y CTE para razonamiento en varios pasos
Los casos del final del juego encadenan lógica: encuentra la hora del testigo, luego encuentra las llamadas anteriores, luego empareja a esos llamantes con una ubicación. Las subconsultas anidadas se encargan de esto, pero las expresiones de tabla comunes (CTE) lo mantienen legible. Los ejemplos de consultas SQL de Ghost in the SQL Data que usan cláusulas WITH se leen como un esquema de investigación.
WITH witness_time AS (
SELECT observed_time FROM witness_statements WHERE case_id = 1
)
SELECT call_time, caller_id
FROM call_log
WHERE call_time < (SELECT observed_time FROM witness_time)
ORDER BY call_time DESC
LIMIT 5;
Esta estructura refleja cómo piensan los detectives: establece un hecho, luego consulta contra él. El tablero del investigador —donde fijas resultados, gráficos y notas— se combina de forma natural con las CTE, porque cada paso se convierte en un resultado discreto y fijable.
Consejos prácticos para consultas más limpias
Más allá de la sintaxis, los hábitos separan las investigaciones fluidas de las frustrantes. Estos consejos reflejan tanto la estructura del juego como las buenas prácticas generales de SQL.
- Inspecciona siempre primero el esquema. Los nombres de las columnas difieren entre casos; adivinar hace perder tiempo.
- Empieza amplio, luego acota. Un
SELECT *con unLIMITrevela la forma de los datos antes de filtrar. - Comenta tus consultas. Los casos posteriores revisitan lógica anterior, y las notas en el tablero del investigador ayudan.
- Prueba las marcas de tiempo con cuidado. Los errores de un minuto pueden ocultar la llamada crucial.
- Usa el editor de niveles. El juego incluye un editor de niveles y soporte para Steam Workshop, así que puedes crear tus propios puzles SQL y practicar patrones.
El juego también incluye 38 logros de Steam, varios de los cuales recompensan consultas eficientes o ingeniosas en lugar de la fuerza bruta, según la ficha de la tienda. Eso incentiva aprender los patrones elegantes anteriores en lugar de desplazarte por tablas sin procesar.
Preguntas frecuentes
¿Necesito experiencia previa en SQL para usar estos ejemplos de consultas SQL de Ghost in the SQL Data? No. Los primeros casos del juego enseñan lo básico, y los patrones de aquí —filtrado, unión, agrupación— son exactamente lo que introducen esos tutoriales. Los principiantes pueden seguirlos caso por caso.
¿Cuál es el patrón de consulta más importante que aprender primero?
Filtrar con WHERE y ordenar con ORDER BY. Casi todos los casos comienzan con una ventana temporal, y el escenario insignia del incendio escolar se basa enteramente en esa base.
¿Por qué mi comprobación = NULL no devuelve nada?
SQL trata NULL como desconocido, por lo que la igualdad nunca coincide. Usa IS NULL o IS NOT NULL en su lugar. Esto desconcierta a muchos jugadores en el caso del billete de metro sin nombre.
¿Puedo practicar fuera de los casos principales? Sí. Ghost in the SQL Data incluye un editor de niveles e integración con Steam Workshop, lo que te permite crear puzles SQL personalizados o descargar los creados por la comunidad para afinar tus habilidades.
Para las últimas actualizaciones, notas de parche y niveles de la comunidad, consulta la página oficial de Ghost in the SQL Data en Steam. Ya sea que persigas a un llamante fantasma o una corona robada, los patrones de consulta anteriores convierten los datos brutos de llamadas de París en una confesión, una SELECT a la vez.
Guías relacionadas
Comandos SQL de Ghost in the SQL Data: Guía práctica para resolver casos
Domina los comandos SQL de Ghost in the SQL Data con esta guía práctica sobre SELECT, WHERE, JOIN y GROUP BY para resolver todos los casos de París.
Errores de consultas SQL en Ghost in the SQL Data: corrige los fallos más comunes rápido
¿Atascado con los errores de consultas SQL de Ghost in the SQL Data? Descubre por qué las comillas, las fechas, los operadores y los JOIN arruinan tu investigación y cómo solucionar cada uno.
Guía de la cláusula SQL WHERE de Ghost in the SQL Data: Filtra pruebas como un detective
Domina la cláusula SQL WHERE de Ghost in the SQL Data para filtrar llamadas de emergencia de París, unir tablas y resolver cada caso más rápido con ejemplos prácticos de consultas.
Guía de SQL JOIN de Ghost in the SQL Data: Conecta pruebas entre tablas
Domina las consultas JOIN en Ghost in the SQL Data con una guía práctica de SQL JOIN que cubre claves, alias, tipos de join y ejemplos reales de casos.