Docs

Documentation

Runs DuckDB SQL locally in your browser for CSV, Excel, and Parquet.

What QuackNinja is

QuackNinja helps you get quick answers from real exports. It runs in your browser and keeps files on your computer.

Attach CSV, Parquet, and Excel files, run SQL, and export results as CSV. No setup needed.

Note

This is a single-session experience per browser tab.

SQL dialect

QuackNinja uses DuckDB SQL. If you’re coming from Postgres/MySQL, most queries work as-is, but some functions and date handling differ.

Query tabs

The SQL editor supports multiple tabs. Each tab keeps its own SQL so you can switch between queries without losing work.

Saved queries

Save queries you run often and reopen them later. Free plans have a small cap; Pro removes the limit.

What it’s for

  • Check an export before sharing (missing values, duplicates).
  • Combine two exports (customers + transactions).
  • Confirm a number before you send a report.
  • Clean a messy CSV without spreadsheets.
  • Query one sheet from an Excel workbook.
  • Pull a subset and export it for stakeholders.

3-minute start

  1. 1
    Open the Console.
  2. 2
    Attach one or more files.
  3. 3
    Run a SQL query.
  4. 4
    Export results as CSV.

Privacy

QuackNinja runs in your browser. Files stay on your computer by default. No upload is required.

Note

If you refresh, QuackNinja may ask to reconnect file permissions.

Import formats and limits

Supported formats: CSV, Parquet, and Excel (.xlsx).

Parquet keeps column types as-is on import (no extra type detection step).

  • Max single file size (your plan): 1GB.
  • Total session size (your plan): 2GB.

Preview vs export

Preview keeps the grid fast. Export uses your full SQL but respects your plan’s row cap.

Export always uses the SQL currently in the editor. There is no full-table export shortcut.

  • Preview limit: 10,000 rows.
  • Export cap: 500,000 rows.

Tip

If your SQL has no LIMIT, QuackNinja adds a preview limit and shows a banner.

Copy/paste examples

Quick examples you can copy and run right away:

DuckDB SQLsql
SELECT * FROM customers LIMIT 25;

SELECT status, COUNT(*) AS total
FROM customers
GROUP BY status
ORDER BY total DESC;

SELECT *
FROM orders o
JOIN customers c ON c.id = o.customer_id
LIMIT 100;

SELECT id, COUNT(*) AS dupes
FROM customers
GROUP BY id
HAVING COUNT(*) > 1;

SELECT *
FROM customers
WHERE email IS NULL;

SELECT region, SUM(revenue) AS total
FROM sales
GROUP BY region
ORDER BY total DESC;

SELECT *
FROM events
WHERE created_at >= '2024-01-01'
LIMIT 100;

Fix column types

If a column looks like text but should be a number or date, use CAST or TRY_CAST in your SQL.

DuckDB SQLsql
SELECT
  TRY_CAST(total AS DOUBLE) AS total_num,
  TRY_CAST(created_at AS TIMESTAMP) AS created_at_ts
FROM orders
LIMIT 100;

Common tasks

Plan limits at a glance

PlanMax single file sizeTotal session sizePreview rowsExport rows
Free25MB100MB1,0001,000
Pro1GB2GB10,000500,000

File size limits

Warning

QuackNinja enforces max single file size and total session size based on your plan. If you hit the limit, split the file or remove unused columns before importing.