Skip to main content

SQL Basics

Datadata supports standard SQL syntax with both DuckDB and ClickHouse engines.

Basic Query

SELECT column1, column2
FROM table_name
LIMIT 100;

Filtering

SELECT *
FROM futures_daily
WHERE trade_date >= CURRENT_DATE - 30
AND symbol LIKE '%gold%'
ORDER BY trade_date DESC;

Aggregation

SELECT symbol,
COUNT(*) AS trade_days,
AVG(close) AS avg_price,
MAX(high) AS max_price,
MIN(low) AS min_price
FROM futures_daily
GROUP BY symbol
HAVING COUNT(*) > 10
ORDER BY avg_price DESC;

Joins

SELECT a.symbol, a.trade_date, a.close, b.name
FROM futures_daily a
JOIN futures_info b ON a.symbol = b.symbol
WHERE a.trade_date = CURRENT_DATE - 1;

Cross-Datasource Queries

With multiple datasources bound, DuckDB supports cross-datasource JOIN:

SELECT a.*, b.category
FROM my_datasource.orders a
JOIN public_datasource.products b ON a.product_id = b.id;

Engine Differences

FeatureDuckDBClickHouse
Cross-datasource JOINYesNo
SubqueriesFullLimited
Window FunctionsYesYes
Best forGeneral analysis, cross-source joinsHigh-throughput time-series data