Query-module
SQL-analyses op Parquet data
Met de Query-module voer je SQL-analyses uit op Parquet-bestanden in je project. Je kunt zelf SQL schrijven of een beschrijving geven en de query laten genereren.
Mini-scenario: je wilt de top 10 leveranciers op basis van uitgaven zien. Met een korte beschrijving laat je de AI een query genereren, die je daarna controleert en uitvoert.
Invoerformulier
Data source(s)
Kies één of meerdere Parquet-datasets. Deze worden beschikbaar in je SQL-query.
Description
Optioneel. Beschrijf in gewone taal wat je wilt analyseren. Je kunt daarna Ask AI to create the query gebruiken om een SQL-statement te genereren.
SQL statement
Hier schrijf of plak je de SQL-query. Gebruik dubbele aanhalingstekens voor bestandsnamen.
Let op: haal alleen de kolommen op die je nodig hebt. Dit maakt de query sneller en je resultaten overzichtelijker.
Output
Naam van de output-tabel (zonder extensie). Dit wordt het resultaatbestand in Parquet.
Command
De Query-module heeft een command waarmee je dezelfde analyse via chat of scripts kunt uitvoeren.
Syntax
QUERY(input=["file.parquet"], sql="SELECT ...", output="result")
Voorbeelden
QUERY(input=["sales.parquet"], sql="SELECT * FROM \"sales.parquet\" LIMIT 1000", output="sales_preview")
QUERY(input=["sales.parquet", "customers.parquet"], description="Top 10 klanten op omzet", output="top_customers")
Resultaat
Na uitvoering verschijnt het resultaat in de Resultaten-tab als Parquet-bestand. Vanuit daar kun je de tabel openen of exporteren.
Praktische tip: begin met een LIMIT om je query te testen, en verwijder die pas als de output klopt. Dit voorkomt onnodig zware runs.
SQL Functies Overzicht
De Query-module gebruikt DuckDB. Hier de belangrijkste functies:
Aggregate Functies
| Functie | Beschrijving | Voorbeeld |
|---|---|---|
SUM(col) |
Som van waarden | SUM(amount) |
AVG(col) |
Gemiddelde | AVG(price) |
COUNT(*) |
Aantal rijen | COUNT(*) |
MIN(col) / MAX(col) |
Min / max | MIN(date) |
MEDIAN(col) |
Mediaan | MEDIAN(age) |
String Functies
| Functie | Beschrijving | Voorbeeld |
|---|---|---|
UPPER(str) |
Hoofdletters | UPPER('hello') → 'HELLO' |
LOWER(str) |
Kleine letters | LOWER('HELLO') → 'hello' |
LENGTH(str) |
Lengte | LENGTH('test') → 4 |
CONCAT(a, b) |
Samenvoegen | CONCAT('A', 'B') → 'AB' |
TRIM(str) |
Spaties weg | TRIM(' test ') → 'test' |
Datum Functies
| Functie | Beschrijving | Voorbeeld |
|---|---|---|
YEAR(date) |
Jaar | YEAR('2025-03-15') → 2025 |
MONTH(date) |
Maand | MONTH('2025-03-15') → 3 |
QUARTER(date) |
Kwartaal | QUARTER('2025-03-15') → 1 |
DATE_TRUNC(part, date) |
Afkappen | DATE_TRUNC('month', date) |
Conditionele Functies
-- CASE WHEN
SELECT
name,
CASE
WHEN amount < 1000 THEN 'Klein'
WHEN amount < 10000 THEN 'Middel'
ELSE 'Groot'
END as categorie
FROM transactions
-- COALESCE (eerste non-null)
SELECT COALESCE(phone, email, 'Geen contact') as contact
FROM customers
Type Conversie
| Functie | Beschrijving |
|---|---|
CAST(val AS type) |
Type conversie |
TRY_CAST(val AS type) |
Veilige conversie (NULL bij fout) |
TO_DATE(str) |
String naar datum |
Tip: Gebruik TRY_CAST voor data van onbekende kwaliteit.