All exercises use fictional, deterministic data. Monetary amounts are integer USD cents. Date/time strings are sortable ISO UTC values; visits and calendar use dates. Nullable account_id in orders is deliberate. SQLite is the runnable lab dialect, not a claim about the interview platform. You can inspect any table in the workspace.
Copyable complete SQLite setup
CREATE TABLE accounts(account_id TEXT PRIMARY KEY,region TEXT);
INSERT INTO accounts VALUES('a','US'),('b','EU'),('c','US'),('d','US');
CREATE TABLE orders(order_id TEXT PRIMARY KEY,account_id TEXT,ordered_at TEXT,status TEXT,cents INTEGER,coupon TEXT);
INSERT INTO orders VALUES
('o1','a','2026-01-01T09:00:00','paid',1000,NULL),
('o2','a','2026-01-01T10:00:00','paid',2000,'NEW'),
('o3','b','2026-01-02T09:00:00','paid',3000,NULL),
('o4','b','2026-01-03T09:00:00','cancelled',9000,NULL),
('o5','c','2026-01-03T10:00:00','paid',3000,'NEW'),
('o6','a','2026-01-04T00:00:00','paid',1000,NULL),
('o7','c','2026-01-04T10:00:00','paid',0,NULL),
('o8',NULL,'2026-01-04T11:00:00','paid',500,NULL),
('o9','b','2026-01-05T00:00:00','paid',1000,NULL),
('o10','a','2026-01-08T09:00:00','paid',4000,NULL);
CREATE TABLE lines(line_id TEXT PRIMARY KEY,order_id TEXT,cents INTEGER);
INSERT INTO lines VALUES('l1','o1',600),('l2','o1',400);
CREATE TABLE captures(capture_id TEXT PRIMARY KEY,order_id TEXT,cents INTEGER);
INSERT INTO captures VALUES('p1','o1',500),('p2','o1',500);
CREATE TABLE refunds(refund_id TEXT PRIMARY KEY,capture_id TEXT,cents INTEGER);
INSERT INTO refunds VALUES('r1','p2',100);
CREATE TABLE sales(category TEXT,product TEXT,cents INTEGER,PRIMARY KEY(category,product));
INSERT INTO sales VALUES('A','p1',100),('A','p2',100),('A','p3',50),('B','p4',20);
CREATE TABLE name_events(group_id TEXT,name TEXT);
INSERT INTO name_events VALUES('x','Ana'),('x','Ana'),('x','Bo'),('x','Bo'),('x',NULL),('y','Cy');
CREATE TABLE changes(event_id TEXT,version INTEGER,account_id TEXT,units INTEGER,deleted INTEGER);
INSERT INTO changes VALUES('e1',1,'a',10,0),('e1',1,'a',10,0),('e2',1,'b',20,0),('e2',2,'b',30,0),('e3',1,'c',5,0),('e3',2,'c',0,1);
CREATE TABLE visits(account_id TEXT,day TEXT);
INSERT INTO visits VALUES('a','2026-01-01'),('a','2026-01-01'),('a','2026-01-02'),('a','2026-01-03'),('a','2026-01-05'),('b','2026-01-02'),('b','2026-01-04'),('b','2026-01-05'),('c','2026-01-08');
CREATE TABLE calendar(day TEXT PRIMARY KEY);
INSERT INTO calendar VALUES('2026-01-01'),('2026-01-02'),('2026-01-03'),('2026-01-04'),('2026-01-05'),('2026-01-06'),('2026-01-07'),('2026-01-08');
CREATE TABLE events(event_id TEXT PRIMARY KEY,account_id TEXT,event_at TEXT,kind TEXT);
INSERT INTO events VALUES
('v1','a','2026-01-01T00:00:00','view'),('v2','a','2026-01-01T00:20:00','start'),('v3','a','2026-01-01T00:50:00','purchase'),('v4','a','2026-01-01T01:21:00','view'),
('v5','b','2026-01-01T01:00:00','purchase'),('v6','b','2026-01-01T01:10:00','view'),('v7','b','2026-01-01T01:20:00','start'),('v8','b','2026-01-02T01:11:00','purchase'),
('v9','c','2026-01-01T02:00:00','view'),('v10','c','2026-01-01T02:05:00','purchase');
CREATE TABLE account_history(account_sk INTEGER PRIMARY KEY,account_id TEXT,plan TEXT,valid_from TEXT,valid_to TEXT);
INSERT INTO account_history VALUES(1,'a','basic','2025-01-01T00:00:00','2026-01-04T00:00:00'),(2,'a','pro','2026-01-04T00:00:00',NULL),(3,'b','basic','2025-01-01T00:00:00',NULL),(4,'c','basic','2025-01-01T00:00:00',NULL);
CREATE TABLE old_values(id TEXT PRIMARY KEY,value INTEGER);
INSERT INTO old_values VALUES('a',100),('b',200),('c',NULL),('e',NULL),('f',NULL);
CREATE TABLE new_values(id TEXT PRIMARY KEY,value INTEGER);
INSERT INTO new_values VALUES('a',100),('b',250),('d',400),('e',0),('f',NULL);
CREATE TABLE documents(id TEXT PRIMARY KEY,payload TEXT);
INSERT INTO documents VALUES('j1','{"service":"s1","latency_ms":12,"tags":["prod","blue"]}'),('j2','{"service":"s1","latency_ms":"oops","tags":[]}'),('j3','not json'),('j4','{"service":"s2","latency_ms":null,"tags":"single"}'),('j5','{"service":"s2"}');
CREATE TABLE org(node TEXT PRIMARY KEY,parent TEXT);
INSERT INTO org VALUES('R',NULL),('a','R'),('b','a'),('c','a'),('x','y'),('y','x');
CREATE TABLE required_services(service_id TEXT PRIMARY KEY);
INSERT INTO required_services VALUES('s1'),('s2');
CREATE TABLE service_use(account_id TEXT,service_id TEXT);
INSERT INTO service_use VALUES('a','s1'),('a','s2'),('b','s1'),('c','s1'),('c','s2'),('c','s2');