splitql · planned execution

input query
SELECT region, count(*) AS orders, sum(amount) AS revenue, avg(amount) AS avg_ticket
FROM sales
WHERE amount > 20
GROUP BY region
ORDER BY revenue DESC
3 fragments6 files? scannedpartials table partials

scan + partial

fragment 0 2 files · size unknown · ? of scan
SQL
SELECT region AS g0, COUNT(*) AS a0, SUM(amount) AS a1, SUM(amount) AS a2_s, COUNT(amount) AS a2_c FROM READ_PARQUET(['_demo_data/sales-2026-01.parquet', '_demo_data/sales-2026-04.parquet']) AS sales WHERE amount > 20 GROUP BY region
files
  • _demo_data/sales-2026-01.parquet size unknown
  • _demo_data/sales-2026-04.parquet size unknown
fragment 1 2 files · size unknown · ? of scan
SQL
SELECT region AS g0, COUNT(*) AS a0, SUM(amount) AS a1, SUM(amount) AS a2_s, COUNT(amount) AS a2_c FROM READ_PARQUET(['_demo_data/sales-2026-02.parquet', '_demo_data/sales-2026-05.parquet']) AS sales WHERE amount > 20 GROUP BY region
files
  • _demo_data/sales-2026-02.parquet size unknown
  • _demo_data/sales-2026-05.parquet size unknown
fragment 2 2 files · size unknown · ? of scan
SQL
SELECT region AS g0, COUNT(*) AS a0, SUM(amount) AS a1, SUM(amount) AS a2_s, COUNT(amount) AS a2_c FROM READ_PARQUET(['_demo_data/sales-2026-03.parquet', '_demo_data/sales-2026-06.parquet']) AS sales WHERE amount > 20 GROUP BY region
files
  • _demo_data/sales-2026-03.parquet size unknown
  • _demo_data/sales-2026-06.parquet size unknown

gather

partials

concatenation of 3 fragment results
(any transport: Arrow, files, UNION ALL)

reduce

reduce
SQL
SELECT g0 AS "region", SUM(a0) AS "orders", SUM(a1) AS "revenue", SUM(a2_s) / SUM(a2_c) AS "avg_ticket" FROM partials GROUP BY g0 ORDER BY revenue DESC

result

✓ identical to single-node