1. SELECT: elegir datos
Al abrir un archivo, OliMat crea la tabla data.
-- Primeras 100 filas
SELECT * FROM data LIMIT 100;
-- Solo algunas columnas
SELECT fecha, especie, captura_kg
FROM data;
Consejo: usa el explorador izquierdo para copiar nombres exactos de tablas y columnas.
2. Convertir texto a fecha y filtrar un rango
TRY_CAST devuelve nulo si un valor no puede convertirse, evitando que una fecha mal escrita detenga toda la consulta.
SELECT *, TRY_CAST(fecha_texto AS DATE) AS fecha_ok
FROM data
WHERE TRY_CAST(fecha_texto AS DATE)
BETWEEN DATE '2025-01-01' AND DATE '2025-12-31';
Para comparar con una fecha de otra tabla:
SELECT a.*, b.fecha_cierre
FROM operaciones a
JOIN calendario b
ON TRY_CAST(a.fecha_texto AS DATE) = b.fecha_cierre;
3. Resumir con GROUP BY
SELECT especie,
COUNT(*) AS operaciones,
SUM(captura_kg) AS captura_total,
AVG(temperatura_mar_c) AS temperatura_media
FROM data
GROUP BY especie
ORDER BY captura_total DESC;
4. Cruzar archivos con JOIN
Abre el primer archivo y usa Agregar archivo como tabla para el segundo.
SELECT c.fecha, c.especie_id, e.nombre_especie, c.captura_kg
FROM capturas c
LEFT JOIN especies e
ON c.especie_id = e.especie_id;
Si aparecen más filas de las esperadas: revisa si la clave se repite en la tabla derecha. Un JOIN muchos-a-muchos multiplica coincidencias.
5. Asociar la medición temporal más cercana
ASOF JOIN es útil para capturas y observaciones oceanográficas.
SELECT c.*, o.temperatura, o.clorofila
FROM capturas c
ASOF LEFT JOIN oceanografia o
ON c.fecha >= o.fecha
AND c.estacion_id = o.estacion_id;
6. Funciones que dan mucho valor
| Objetivo | Función DuckDB |
|---|
| Conversión segura | TRY_CAST(valor AS DOUBLE) |
| Valores únicos aproximados | APPROX_COUNT_DISTINCT(campo) |
| Mediana y percentiles | QUANTILE_CONT(valor, 0.5) |
| Correlación | CORR(x, y) |
| Muestra aleatoria | USING SAMPLE 10000 ROWS |
| Buscar texto | campo ILIKE '%pota%' |
7. Si la consulta falla
La aplicación no debería cerrarse: muestra el error de DuckDB y conserva el editor para que corrijas la consulta. Puedes cancelar operaciones pesadas y usar Plan para inspeccionar la ejecución.
Documentación oficial de DuckDB ↗