Query CSV with SQL

100% private — runs on your device, never uploaded. Works offline once loaded.

Runs on your device — nothing uploaded Beta

Query CSV with SQL — DuckDB SQL, on your own files

Write SQL against CSV, Excel, JSON and Parquet files in your browser, with autocomplete, joins across files and instant results. Powered by DuckDB; nothing is uploaded.

Open the SQL editor

Opens the full-screen editor. Works offline once loaded.

  • ⌨ Autocomplete for tables & columns
  • ⇄ Join CSV, Excel & Parquet together
  • ✨ Draft SQL from a plain-English question
  • ⬇ Save results as a table or export

Every file you open becomes a table you can query by name — SELECT from a CSV, JOIN it to a sheet from an Excel workbook, and GROUP BY across a folder of monthly exports, all in standard SQL. The engine is DuckDB, an analytical database with a PostgreSQL-flavoured dialect and the functions analysts reach for: window functions, PIVOT, QUALIFY, date_trunc, regular expressions and string_agg. It runs inside the page, so queries return in milliseconds without your data going anywhere. The editor autocompletes your table and column names, ⌘/Ctrl + Enter runs the query, and results scroll to any row however many there are. Save a result as a new table to query it again, chart it, or export it as CSV, Excel, JSON or Parquet.

Frequently asked questions

Which SQL dialect is it?

DuckDB’s, which is close to PostgreSQL and adds conveniences such as GROUP BY ALL, SELECT * EXCLUDE, PIVOT and QUALIFY. Standard SELECT, JOIN, GROUP BY, window functions and CTEs all work as you would expect.

Are my files uploaded to a database server?

No. The database is compiled to WebAssembly and runs inside the browser tab; it reads your files from your own disk. Nothing is sent anywhere.

Can I join two different files?

Yes. Every imported file — and every sheet of a workbook you import — is a table, so you can join a CSV to an Excel sheet or a Parquet file in one query.

Can a query change my file?

No. Queries read from the file; nothing is ever written back to it. Statements such as CREATE VIEW only affect the in-browser database.

Can it write the SQL for me?

Type a question into "Ask a question" and a small language model running on your device drafts a query, which is checked against your tables before it runs. Read it before trusting the answer; a small model can misread a question.

Advertisement