SQL Dojo Beta

Biblioteca

Los patrones, trampas y palabras clave de SQL y de la analytics engineering, cada uno con los ejercicios que lo practican.

Técnica15

Técnica

Anti-join

Las filas de una tabla que no tienen correspondencia en otra: los clientes que nunca han hecho un pedido.
Técnica

Aplicar un flujo de cambios

Reducir un lote de cambios al último por clave, borrados incluidos, y aplicarlo con un único MERGE.
Técnica

Búsqueda por fecha de vigencia

Encontrar la tarifa, el precio o la versión vigente en la fecha de cada hecho, a partir de una tabla que guarda los cambios.
Técnica

Contar días laborables

Construya una vez los días laborables (sin fines de semana ni festivos) y luego cuéntelos entre dos fechas.
Técnica

Fusionar periodos solapados

Fusionar los periodos que se solapan o se tocan en periodos continuos, con un máximo acumulado de las fechas de fin.
Técnica

Invariantes como tests

Una regla que debe cumplirse en cada fila, o entre un modelo y su fuente, escrita como «las filas que la incumplen».
Técnica

Pico de concurrencia

Cuántas cosas estuvieron activas a la vez, como máximo: +1 en cada inicio, −1 en cada fin y luego un total acumulado.
Técnica

Recorrer un grafo sin dar vueltas

Una consulta recursiva sobre enlaces que pueden formar bucles debe llevar su camino y negarse a volver a visitar un nodo.
Técnica

Reparto con resto

Repartir un importe entre filas según un peso, redondeado al céntimo, con el resto en una fila elegida para que las partes sumen exactamente el total.
Técnica

Semi-join

Las filas que tienen al menos una correspondencia, cada una conservada una sola vez.
Técnica

Tabla de cuarentena

Las filas erróneas van a una tabla aparte con la regla que incumplen, en lugar de filtrarse y olvidarse.
Técnica

Total acumulado

Sumar una medida desde la primera fila hasta la actual.
Técnica

Un histograma en SQL

Contar los valores por intervalo de anchura fija, conservando los intervalos vacíos.

Trampa9

Trampa

Aún no observable

Un resultado que no ha tenido tiempo de producirse es desconocido, no cero: las cohortes jóvenes y el periodo en curso parecen un desplome.
Trampa

Borrado lógico y NULL

WHERE NOT is_deleted también descarta las filas en las que el indicador es NULL.
Trampa

Convertir y luego truncar

Cortar una hora UTC en días, horas o meses da días UTC: convierta primero a la zona horaria del lector.
Trampa

Datos sucios

Un archivo sucio no da ningún error: todas las consultas funcionan y las respuestas son falsas. Revise una tabla nueva antes de fiarse de ella.
Trampa

Fan-out de un JOIN

Unir dos tablas uno-a-muchos multiplica las filas, y las sumas crecen con ellas.
Trampa

NOT IN con un NULL

Basta un NULL en la lista para que NOT IN no devuelva ninguna fila.
Trampa

Paradoja de Simpson

Un grupo puede ser mejor en cada segmento y peor en conjunto cuando los segmentos pesan de forma distinta.

Palabra clave2

Palabra clave

LEFT JOIN

Conservar todas las filas de la tabla de la izquierda, aunque nada coincida a la derecha.
Palabra clave

MAX_BY y MIN_BY

El valor de una columna en la fila donde otra columna es máxima (o mínima), en un simple GROUP BY.

Indicador5

Indicador

Explicar una variación

Descomponer la variación de una métrica en partes que suman el total: volumen frente a valor, mix frente a tasa, y luego por segmento.
Indicador

Ingresos

Una sola definición para toda la cafetería: quantity * unit_price de las líneas de pedido, excluidos los pedidos cancelados.
Indicador

Tasa de cancelación

Los pedidos cancelados divididos entre todos los pedidos, en porcentaje.
Indicador

Ticket medio

Los ingresos divididos entre el número de pedidos, en un periodo.

Modelado4

Modelado

Staging, intermediate, marts

Cada definición vive en una sola capa: nombres y tipos en staging, lógica compartida en los modelos intermediate, entidades de negocio en los marts.