Capítulo 11 · 8 niveles
Leer y arreglar consultas
Depura consultas que heredas: multiplicación de filas en joins, el grano equivocado en GROUP BY, WHERE vs HAVING, división entera, límites de fechas, zonas horarias y NOT IN con NULL.
En el trabajo escribes menos consultas desde cero de lo que crees. La mayoría de las semanas las heredas: la consulta de un panel de alguien que se fue, un script que un colega pegó en un ticket, un informe que “siempre ha funcionado” hasta que alguien nota que los números no cuadran. Cada nivel de este capítulo parte de una de esas consultas. Se ejecuta sin error, y está mal.
Lee una consulta rota de arriba abajo, una cláusula a la vez: qué significa una fila después de FROM y de
cada JOIN (el grano), qué filas descarta WHERE, qué colapsa GROUP BY y si cada filtro se aplica a
filas o a grupos. Luego compara los conteos de filas con un número en el que confíes, y sigue a mano a un
cliente, un pedido o un día a través de la consulta. Los fallos de aquí son los que más a menudo llegan a
los informes reales, y detectarlos rápido es lo que evalúan los entrevistadores con “¿qué tiene de malo
esta consulta?”
Niveles
- Ingresos por envío que crecieron tras un join
de Laura Bennett, Directora de Finanzas
debugging, fan out, grain, pre aggregate, cte
- Un gráfico diario atascado en un pedido
de Kevin Brooks, Gerente de Operaciones
debugging, group by, grain, timestamp, cast
- La lista de alto valor que salió demasiado larga
de Megan Collins, Directora de Ventas
debugging, where, having, aggregate, average order value
- Tasas de devolución que son todas números enteros
de Jessica Turner, Gerente de Merchandising
debugging, integer division, rates, round, left join
- A diciembre le faltan once pedidos
de Brian Mitchell, Analista Financiero
debugging, between, timestamp, date range, half open range
- El Black Friday en la zona horaria de la plataforma de anuncios
de Jordan Reyes, Director de Marketing
debugging, time zones, utc, timestamp, interval
- ¿Nadie se ha saltado nunca el sitio web?
de Ashley Rivera, Responsable de Contenido Web
debugging, not in, nulls, not exists, anti join
- Desafío final: el paquete de KPI heredado
de Priya Shah, Directora de Datos
debugging, fan out, between, grain, integer division, having