BEGIN; create extension country; SET max_parallel_workers_per_gather=4; SET force_parallel_mode=on; CREATE TABLE parallel_test(i int, c country) WITH (parallel_workers = 4); INSERT INTO parallel_test (i, c) SELECT i, c.country FROM generate_series(1,1e6) i, LATERAL (SELECT CASE WHEN i % 3 = 0 THEN 'US'::country WHEN i % 3 = 1 THEN 'DE'::country WHEN i % 3 = 2 THEN 'CA'::country END as country) c; EXPLAIN (costs off,verbose) SELECT COUNT(*) FROM parallel_test WHERE c = 'us';; QUERY PLAN --------------------------------------------------------------- Finalize Aggregate Output: count(*) -> Gather Output: (PARTIAL count(*)) Workers Planned: 4 -> Partial Aggregate Output: PARTIAL count(*) -> Parallel Seq Scan on public.parallel_test Output: i, c Filter: (parallel_test.c = 'us'::country) (10 rows) EXPLAIN (costs off,verbose) SELECT c, COUNT(*) FROM parallel_test GROUP BY 1; QUERY PLAN ------------------------------------------------------------------- Finalize GroupAggregate Output: c, count(*) Group Key: parallel_test.c -> Gather Merge Output: c, (PARTIAL count(*)) Workers Planned: 4 -> Sort Output: c, (PARTIAL count(*)) Sort Key: parallel_test.c -> Partial HashAggregate Output: c, PARTIAL count(*) Group Key: parallel_test.c -> Parallel Seq Scan on public.parallel_test Output: i, c (14 rows) ROLLBACK;