SQL Query Across Files
Load one or more CSV, JSON, or Excel files as tables, then run a SQL query across them. Each file becomes a table named after its filename. Join, aggregate, window-function, CTE — anything SQLite supports. Runs entirely in your browser; nothing uploads.
About SQL Query Across Files
SQL Query Across Files lets you load one or more CSV, JSON, or Excel files as tables and run real SQL over them — joins, aggregates, window functions, CTEs, anything SQLite supports. Each file becomes a table named after its filename, so you can analyze and combine spreadsheets the way you would a database. Everything runs in your browser on an in-memory SQLite engine; your files never upload.
- Category
- dev
- Input
- Accepts: text/csv, text/plain, application/json, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet or application/vnd.ms-excel.
- Output
- Outputs: text/csv.
- Cost
- Free, runs in your browser
- Memory
- medium
Common uses
- Join two exported CSVs — orders and customers — on a shared id to see revenue by customer in one query
- Run a GROUP BY with SUM across a sales spreadsheet to total amounts by region or month
- Filter a 100k-row export down to the rows that match a WHERE clause and download just those
- Use a window function to rank products within each category or compute a running total
- Combine an Excel sheet and a JSON file in a single query without importing both into a real database
- Deduplicate or reconcile records across two files with a CTE, then export the clean result as CSV
Frequently asked questions
Which file formats can I load?
CSV, plain text, JSON, and Excel (.xlsx and legacy .xls). Each file you load becomes a table named after its filename, ready to query.
What SQL features are supported?
Anything SQLite supports — JOINs, GROUP BY and aggregates, window functions, common table expressions (CTEs), subqueries, and more. The query runs against an in-browser SQLite engine.
Does my data get uploaded to a server?
No. Files are parsed and queried entirely in your browser using an in-memory SQLite database. Nothing leaves your device, which makes it safe for confidential or regulated data.
How do I reference a file in my query?
Use the filename (without extension) as the table name. If you load sales.csv, query it as SELECT * FROM sales. Quote names that contain spaces or special characters.
What does the query return?
The result set is returned as CSV (text/csv), so you can download it or feed it straight into another data tool.
Is there a row or file-size limit?
There's no hard cap, but because everything runs in your browser's memory, very large files (hundreds of MB) may be slow or hit your browser's memory limit. For typical exports of tens of thousands of rows it's fast.
Keywords
- sql
- sqlite
- csv
- query
- join
- aggregate
- group-by
- data
- analytics