JSON and Semi-Structured Data: practice questions
400 questions in four levels, all on RetailMart, the practice database of this course. Write every query yourself, get it wrong, read the error, fix it. That is how it sticks.
Answers are coming soon. Post your query in the WhatsApp Community or Discord and we will check it together.
Easy 100 questions Medium 100 questions Hard 100 questions Crazy 100 questions
Core syntax, applied directly
CONCEPTUAL Q1 Difference between JSON and JSONB (storage, dedup keys, ordering, indexing). Q2 What does -> return (jsonb) vs ->> (text)? Q3 When do you use ->> vs -> in SELECT / WHERE? Q4 What do #> and #>> do (path access by array of keys)? Q5 What does the @> containment operator test? Q6 What does the ? operator test (top-level key existence)? Q7 What does jsonb_array_elements do to an array? Q8 Difference between jsonb_array_elements and jsonb_array_elements_text. Q9 What does jsonb_build_object(k1,v1,k2,v2,...) construct? Q10 What does to_jsonb(value-or-row) do? Q11 What does jsonb_agg(expr) aggregate? Q12 What does to_jsonb of a whole row produce? Q13 Why must you cast (json ->> 'x')::numeric before doing math? Q14 What is jsonb_object_keys used for? Q15 What does jsonb_path_query do (concept)? Q16 Why is JSONB better than text for storing semi-structured data? Q17 Where does nested JSON come from in real pipelines (APIs, event streams)? Q18 What does "flattening" nested JSON into rows mean? Q19 Why might you GIN-index a JSONB column (Topic 20 tie-in, concept)? Q20 Name RetailMart's one real JSONB column and how we simulate the rest. Q21 What does jsonb_build_array(...) build? Q22 Difference between a JSON object {} and a JSON array []. Q23 How do NULLs appear in JSON (SQL NULL vs JSON null)? Q24 What do jsonb_each / jsonb_each_text return? Q25 Why does ->> on a missing key return NULL instead of erroring? EXTRACT & BUILD BASICS Q26 From audit.procedure_calls: extract input_params->>'id' as text. Q27 Cast that extracted id to integer; return call_id + id. Q28 Count procedure_calls where input_params ? 'id' (key present). Q29 Join the extracted id back to products.products on product_id. Q30 Build a JSON per order: jsonb_build_object('order_id',..,'net_total',..,'status',..). Q31 Build to_jsonb(o.*) for the first 10 orders. Q32 From a built order JSON, extract ->>'status'. Q33 Build an api-request JSON from audit.api_requests (method, status_code, latency, user_agent). Q34 From that built JSON, extract method and status_code back out. Q35 Cast a built JSON field (->>'net_total')::numeric and SUM it. Q36 Build a customer JSON {id, name, tier} from customers.customers. Q37 Extract tier from the built customer JSON and group counts. Q38 Build a product JSON {prod_id, price, cost} and compute margin from extracted fields. Q39 Build a store JSON with a nested address object (jsonb_build_object inside). Q40 Use ->> to pull a field and filter rows where it equals a value. Q41 Build a review JSON {rating, date} and extract rating::int. Q42 Build jsonb with a NULL value; observe the resulting JSON null. Q43 COALESCE an extracted ->> value with a default. Q44 Build order JSON and extract via path #>>'{status}'. Q45 Count distinct extracted ->>'method' from built api JSON. Q46 Build a ticket JSON {priority, subject}; group by extracted priority. Q47 Extract two fields and concatenate into one label. Q48 Build an employee JSON {name, dept}; filter by extracted dept. Q49 Round-trip: row -> to_jsonb -> ->> a column -> compare to the original column. Q50 Build JSON and check optional-key existence with ? . ARRAYS & NESTING Q51 Aggregate order_items into a jsonb array per order (jsonb_agg). Q52 Build a nested order document {order_id, items:[...]} (jsonb_build_object + jsonb_agg). Q53 Unnest that items array with jsonb_array_elements (one row per item). Q54 Count items per order via jsonb_array_length on the built array. Q55 Build a customer document with an orders array. Q56 Extract the first array element with ->0. Q57 jsonb_array_elements_text on a built array of labels/tags. Q58 Group by a nested field after unnesting (e.g. item prod_id). Q59 Build {region, stores:[...]} nested document per region. Q60 SUM a numeric field across unnested array elements. Q61 Build a per-product review array; compute avg rating from unnested. Q62 Use #> to navigate into a nested object path (returns jsonb). Q63 Use #>> to navigate into a nested path (returns text). Q64 Build a 2-level nested doc (region->store->count); read a deep path. Q65 Filter built docs with @> containment (e.g. contains {"status":"Delivered"}). Q66 Check key existence with ? across built documents. Q67 List keys of a built order object with jsonb_object_keys. Q68 Build an array of distinct payment modes as jsonb. Q69 Unnest a built monthly-revenue array into rows. Q70 Build {customer, order_count, total}; extract numeric for sorting. Q71 Aggregate the top-5 products per category into a jsonb array. Q72 Build nested {brand, products:[{prod_id,price}]}; unnest two levels. Q73 jsonb_agg with ORDER BY inside (an ordered array). Q74 Build a jsonb array of order dates per customer. Q75 Count keys in a built object (jsonb_object_keys + count). COMBINED / PIPELINES Q76 Build a per-order nested JSON {order, items[], payment} (API-export shape). Q77 Flatten that document back into a relational row set. Q78 Per customer: build a "customer-360" JSON (profile + order count + latest order, Topic 22). Q79 Aggregate orders into a jsonb array per customer; keep only those with >5 orders. Q80 Build api-request JSON; extract status_code; group error (>=400) vs ok. Q81 Build api JSON; cast latency; compute median latency per method (Topic 22). Q82 Build event JSON from web_events; bucket by extracted hour (Topic 23). Q83 Round-trip pipeline: rows -> jsonb_agg -> unnest -> re-aggregate; verify totals. Q84 Build monthly revenue as a jsonb object keyed by month (jsonb_object_agg). Q85 Extract values from that month-keyed object for specific months. Q86 Build a region->metrics nested doc with median + P95 inside (Topic 22). Q87 Per category: jsonb array of monthly units (Topic 23) for a sparkline payload. Q88 Build a ticket document; filter where priority is Critical via ->>. Q89 Construct a JSON export of the top-10 customers by spend (API response). Q90 Build a product-catalog JSON {prod_id, name, price, in_promo?} with a boolean. Q91 Use @> to find built order docs containing a specific item prod_id. Q92 Build nested store->employees doc; count employees via jsonb_array_length. Q93 Cast and SUM a jsonb array of line amounts to reconstruct the order total. Q94 Build a JSON time-series payload (date->revenue) for the last 30 days (Topic 23). Q95 Per customer: latest order as JSON (DISTINCT ON, Topic 22) embedded in a profile doc. Q96 Build JSON with computed margin; filter where margin < 0.2. Q97 jsonb_object_agg of region->revenue; extract the max-revenue region. Q98 Build an audit-change document {table, col, old, new} from record_changes. Q99 From procedure_calls: extract id, join products, build enriched JSON with product name. Q100 Executive JSON export: per region {median_aov, p95_aov, orders} array (Topic 22 + JSON). Combined ideas, multi-step thinking
CONCEPTUAL Q1 JSONB vs JSON: which preserves key order/duplicates, which queries faster? Q2 -> vs ->> vs #> vs #>> - a precise four-way comparison. Q3 @> vs ? vs ?| vs ?& - the containment / key-existence family. Q4 When does jsonb_array_elements multiply row counts (LATERAL cross-join semantics)? Q5 Why is a ->> result always text, requiring a cast for math/sort? Q6 jsonb_build_object vs to_jsonb(row) - when to use each. Q7 jsonb_agg vs jsonb_object_agg - array vs keyed object. Q8 GIN index on JSONB: jsonb_ops vs jsonb_path_ops (Topic 20 concept). Q9 Which operators does a GIN index accelerate (@>, ?, ...)? Q10 jsonb_path_query / JSONPath basics (concept). Q11 Flattening strategy: LATERAL jsonb_array_elements then extract scalars. Q12 NULL vs JSON 'null' vs a missing key - three distinct cases. Q13 Coalescing missing JSON fields with sensible defaults. Q14 Storing event payloads as JSONB: pros and cons vs wide columns. Q15 Round-tripping relational <-> JSON without losing data. Q16 jsonb_set / concatenation (||) for building/modifying (concept; writes -> practice). Q17 Indexing an extracted scalar with an expression index on (doc->>'k') (Topic 20). Q18 Why deeply nested JSON hurts clarity and performance. Q19 Validating JSON shape (keys present, types correct) in SQL. Q20 jsonb_strip_nulls and why it helps API payloads. Q21 Aggregating many rows into a single JSON document per group. Q22 Pretty-printing with jsonb_pretty for debugging. Q23 Extracting JSON fields and pivoting them into columns (Topic 21). Q24 Combining JSON extraction with window functions (Days 16-18). Q25 When to push JSON parsing to ETL vs do it at query time. EXTRACT, CAST & AGGREGATE Q26 procedure_calls: extract id, join products, return proc_name + product name + price. Q27 procedure_calls: count calls per extracted id; top 10 most-referenced ids. Q28 Build api JSON; extract status_code; count by 2xx / 4xx / 5xx bands. Q29 Build api JSON; median & P95 latency per method (Topic 22). Q30 Build order docs; extract net_total::numeric; revenue per extracted status. Q31 Build customer docs; group by extracted tier; counts + median spend. Q32 Build product docs; compute margin from extracted price/cost; per category. Q33 jsonb_object_agg month->revenue; extract a slice of specific months. Q34 Build review docs; avg extracted rating per product; filter > 4. Q35 Build event docs (Topic 23 timestamp); bucket by extracted hour. Q36 Extract nested address city from a built customer doc; group counts. Q37 Build ticket docs; group by extracted priority; SLA% within target. Q38 Build api JSON; filter user_agent containing 'Mobile'; count. Q39 Build per-store doc; extract numeric revenue; rank stores (Topic 16). Q40 Build a doc with two numerics; compute their ratio; filter on threshold. Q41 Extract ->>'method' and pivot counts into columns (Topic 21). Q42 Build order doc with nested payment; extract #>>'{payment,mode}'. Q43 jsonb_agg an ordered array of a customer's order dates; read last with ->-1. Q44 Cast extracted dates; compute gaps between them (Topic 23 + JSON). Q45 Build region doc with a nested KPI object; read median via path. Q46 Count rows where a built doc ? 'discount' (optional key present). Q47 Extract array length per built customer-orders doc; show its distribution. Q48 Build doc; apply jsonb_strip_nulls; compare key counts before/after. Q49 Build api JSON; group by method x status band (Topic 21 pivot). Q50 Build doc; extract + COALESCE a missing field with a default. ARRAYS, NESTING & FLATTENING Q51 Nested order doc {order, items:[{prod,qty,amt}]}; unnest; revenue per prod. Q52 Customer doc with orders array; unnest; count orders; verify vs base table. Q53 Region->stores->orders 2-level nest; flatten to (region, store, count). Q54 Top-N products per category as a jsonb array (window + jsonb_agg). Q55 Unnest items; group by prod_id; total qty; compare to a direct aggregate. Q56 @> containment: order docs containing item prod_id = X. Q57 ?& multiple required keys present across docs. Q58 #> navigate to a nested items array; jsonb_array_length. Q59 brand->products->reviews 3-level doc; deep path to a rating. Q60 jsonb_array_elements WITH ORDINALITY to keep element position. Q61 Unnest a month->value object via jsonb_each; cast; SUM. Q62 Build a per-customer tag array (derived flags); unnest; count by tag. Q63 Aggregate order_items to an array, then re-aggregate SUM from the array (round-trip). Q64 Build a nested doc; extract a deep path #>>'{a,b,c}'. Q65 Filter docs where a nested numeric (cast) exceeds a threshold. Q66 jsonb_object_agg prod->qty per order; extract a specific prod's qty. Q67 Build a customer-360 with arrays of orders, reviews, tickets; count each. Q68 Unnest two arrays from the same doc independently (two LATERAL calls). Q69 Build a jsonb array of {month, revenue} per region; unnest; MoM (Topic 18). Q70 Containment query: which docs contain {"tier":"Gold"}. Q71 Build a nested doc; jsonb_object_keys to list its dynamic fields. Q72 Flatten api-log JSON into typed columns (the lab, via constructed JSON). Q73 Unnest + pivot: items array -> one column per category (Topic 21). Q74 Build doc; compute an array aggregate (avg of unnested amounts). Q75 Reconstruct an order total by summing unnested item amounts; reconcile. PIPELINES & APPLIED Q76 API export: per order nested {order, items[], payment, customer}. Q77 Flatten that export back; verify row counts match the base joins. Q78 Customer-360 doc per customer with latest order (Topic 22) + median spend. Q79 Build month-keyed revenue object per region (jsonb_object_agg); read the trend. Q80 Time-series JSON payload: date->revenue last 90 days (Topic 23) as one object. Q81 Error-rate API report: build api JSON; % 4xx/5xx per endpoint. Q82 Latency SLO JSON: per method P50/P95/P99 (Topic 22) as a jsonb object. Q83 Top-customers JSON array for an API response (rank + jsonb_agg). Q84 Catalog export: per product {price, in_promo, margin} with booleans. Q85 Audit-change doc from record_changes; filter price changes > 50% (cast). Q86 Nested region->KPIs doc with median, P95, order count (Topic 22). Q87 Funnel-ish counts as a JSON object (web_events stages). Q88 Sparkline payload: per category monthly-units jsonb array (Topic 23). Q89 Build doc; validate required keys (? checks); flag invalid docs. Q90 Containment filter to find docs matching a complex criterion (@>). Q91 Per-customer cadence doc (median gap, Topic 22+23) embedded as JSON. Q92 Reshape: unpivot KPIs to long, build a {metric,value} array (Topic 21 + JSON). Q93 Build api JSON; peak-hour error analysis (Topic 23 hour + JSON). Q94 Export a top-10 stores leaderboard as a jsonb array with rank + median. Q95 Customer segment doc: tier + RFM-ish NTILE scores (Topic 16) as JSON. Q96 Build nested order doc; @> to find orders containing a returned item. Q97 JSON time-bucket: 15-min slots (Topic 23) -> counts as a JSON object. Q98 Reconcile: JSON-built totals vs SQL aggregates; assert equality. Q99 Build a paginated API response shape {data:[...], meta:{count,page}}. Q100 Exec dashboard JSON: per region {median_aov, p95, orders, latest_order} array (Topic 22+23). Interview grade, edge cases
CONCEPTUAL Q1 JSONB internals: binary storage, why @>/? are GIN-able, key-order loss. Q2 jsonb_ops vs jsonb_path_ops GIN indexes - size vs operator coverage (Topic 20). Q3 Expression index on (doc->>'k') for equality/range, and when the planner uses it (Topic 20). Q4 JSONPath: jsonb_path_query / _first / _exists - filters, wildcards, predicates. Q5 Designing a JSONB event schema: required vs optional keys, versioning. Q6 Schema-on-read tradeoffs: flexibility vs validation vs performance. Q7 Flattening deeply nested arrays with recursive-free LATERAL chains. Q8 NULL / absent / json-null trichotomy and its effect on filters and counts. Q9 Round-trip fidelity: numeric precision, key order, duplicate keys. Q10 When to materialize extracted columns (Topic 25 MV) vs parse live. Q11 Indexing strategy for mixed containment + scalar-range JSON queries. Q12 jsonb_set / || / - / #- for transformation (concept; writes -> practice). Q13 Validating payloads: key presence, type checks, enum membership in SQL. Q14 Aggregating heterogeneous documents safely (defensive extraction). Q15 Performance of jsonb_array_elements on large arrays (row explosion). Q16 Pivoting dynamic JSON keys into columns when the key set is unknown (limits). Q17 Combining JSON extraction with window analytics (Days 16-18). Q18 JSON for API contracts: pagination, envelopes, error shapes. Q19 Modeling event ingestion as JSONB; tolerating late/extra fields. Q20 Containment vs equality for filtering nested structures. Q21 Partial indexes on a JSON predicate subset (Topic 20). Q22 Cost of casting in WHERE ((doc->>'x')::numeric) and index remedies. Q23 jsonb_strip_nulls / canonicalization for dedup (Topic 26 preview). Q24 Designing a customer-360 document: grain, arrays, refresh. Q25 When NOT to use JSON (well-structured relational data). PARSING & VALIDATION ENGINES Q26 Parse the (constructed) api-request JSON into typed columns: method, status, latency, ua. Q27 Validate each built doc has all required keys (?&); flag invalid ones. Q28 Type-check: status_code and latency are numeric; reject bad rows. Q29 Error taxonomy: classify status into 2xx/3xx/4xx/5xx from the extracted code. Q30 Per endpoint: request count, error %, P95 latency (Topic 22) from built JSON. Q31 User-agent class: flag Mobile/Tablet/Desktop via LIKE on extracted ua. Q32 Containment audit: docs that @> a required template object. Q33 JSONPath: jsonb_path_query to pull nested predicate matches. Q34 Defensive extraction with COALESCE chains over #>> paths. Q35 Detect schema drift: docs missing an expected key over time (Topic 23). Q36 Build + validate order docs; reconcile item-sum vs net_total; flag mismatches. Q37 Extract + pivot a method x status matrix (Topic 21) from built logs. Q38 Median/P95 latency per method per hour (Topic 22+23) from JSON. Q39 Per customer-360 doc: validate arrays are non-empty; counts. Q40 Flatten nested items two levels; aggregate; compare to relational truth. Q41 jsonb_each_text to enumerate a dynamic KPI object; cast; aggregate. Q42 Find docs where a nested numeric path exceeds a threshold. Q43 Build a versioned doc {v:2,...}; branch extraction by version. Q44 Canonicalize (strip_nulls + key-sort concept) before dedup (Topic 26 preview). Q45 Detect duplicate logical docs via @> in both directions. Q46 Extract array WITH ORDINALITY; compute a position-aware metric. Q47 Build + query a time-series JSON (date->rev); compute MoM (Topic 18). Q48 Reconstruct funnel stage counts from event docs; drop-off %. Q49 Validate enum: extracted status in allowed set; flag violations. Q50 Per region nested KPI doc; deep-path extract; rank regions (Topic 16). NESTED-DOC PIPELINES Q51 Customer-360 builder: profile + orders[] + reviews[] + tickets[] + latest (Topic 22). Q52 Flatten the customer-360 doc fully back to normalized rows; reconcile counts. Q53 Order-export builder: {order, items[], payment, shipment} nested document. Q54 Region rollup doc: stores[] each with a monthly-revenue[] array (Topic 23). Q55 Catalog doc: category->brands[]->products[] 3 levels; deep navigate. Q56 Unnest 3 levels; aggregate the leaf metric; compare to direct GROUP BY. Q57 jsonb_object_agg to build a prod->qty map per order; query specific prods. Q58 Build {region:{month:revenue}} nested map; extract via #> path. Q59 Top-N-per-group arrays (window, Topic 16) embedded per category. Q60 Time-series object per metric; unnest; gap-fill check (Topic 23). Q61 Containment search across nested docs (@> with a nested object). Q62 Build a paginated envelope {data:[...], meta:{...}}; slice page N. Q63 Sparkline arrays per entity for a dashboard payload. Q64 Merge two built docs (|| concat) and resolve key conflicts (concept). Q65 Build doc; extract + pivot dynamic keys (bounded set) to columns (Topic 21). Q66 Reshape unpivot -> {metric,value}[] (Topic 21), then re-pivot from JSON. Q67 Nested cohort object: cohort->period->retention (Topic 23) as JSON. Q68 RFM-ish scores per customer as JSON (NTILE, Topic 16) - a segment doc. Q69 Build + query an inventory-snapshot doc per warehouse (latest, Topic 22). Q70 Audit-trail doc array from record_changes per record; latest change highlighted. Q71 Build doc with computed booleans (in_promo, is_returned); filter. Q72 Deep aggregate: SUM leaf amounts across 2-level arrays; reconcile. Q73 Build doc; jsonb_array_length distribution; outliers (Topic 22). Q74 Construct an API error-report doc per endpoint (counts, P95, samples). Q75 Customer timeline JSON (Topic 23) embedded; extract the spans. PRODUCTION SEMI-STRUCTURED SYSTEMS Q76 Customer-360 mart (one JSONB doc per customer) - full builder, validated. Q77 API observability: per endpoint/method error %, P50/P95/P99 latency JSON (Topic 22). Q78 Event-stream flattener: events JSON -> typed fact rows (Topic 23 buckets). Q79 Order-export service: nested doc + reconciliation + envelope. Q80 Region exec dashboard JSON: median/P90/P95 AOV, orders, latest (Topic 22+23). Q81 Catalog API: category-tree doc with products + promo flags + margins. Q82 Cohort retention JSON triangle (Topic 23) for a BI payload. Q83 Audit-change monitor: > 50% price-jump detection from record_changes JSON (Topic 26 preview). Q84 Time-series payload service: date->revenue 90d + moving averages (Topic 23) as JSON. Q85 RFM segment export per customer (NTILE, Topic 16) as JSON. Q86 Inventory freshness JSON per warehouse (latest snapshot, Topic 22). Q87 Funnel analytics JSON: stage counts + drop-off (web_events). Q88 Pricing drift JSON: per product latest vs median price (Topic 22). Q89 Validation gateway: reject/flag docs failing key/type/enum checks. Q90 Pagination + filter service over built docs (envelope + @>). Q91 Heatmap JSON: weekday x hour activity (Topic 23) as a nested object. Q92 SLA scorecard JSON per priority (median/P95 resolution, Topic 22). Q93 Multi-metric region doc; reshape pipeline (Topic 21) JSON <-> relational. Q94 Schema-versioned ingestion: branch by {v} and normalize. Q95 Reconciliation suite: JSON-built totals vs relational; assert equal. Q96 Customer activity unifier JSON (orders + views + tickets latest, Topic 22). Q97 Export top movers JSON (WoW P95 shift, Topic 23) for alerting. Q98 Build + GIN-index plan note (Days 19-20) for containment queries (concept). Q99 End-to-end: rows -> nested docs -> validate -> flatten -> reconcile, one pipeline. Q100 Capstone: a production customer-360 JSONB document (profile, orders[], reviews[], latest order, median/P95 spend, RFM scores) as one query, noting MV materialization (Topic 25). Production scenarios, optimisation
CONCEPTUAL Q1 Architect a JSONB event-ingestion + analytics layer (raw -> typed -> marts). Q2 GIN jsonb_ops vs jsonb_path_ops vs expression-btree - choosing per workload (Topic 20). Q3 JSONPath at scale: jsonb_path_query_array, predicates, lax vs strict. Q4 Schema evolution / versioning for JSONB payloads; migration strategy. Q5 Materializing extracted columns into MVs vs live parse (Topic 25) - cost model. Q6 Containment-query planning + partial / expression indexes (Days 19-20). Q7 Defensive parsing of untrusted / heterogeneous payloads at scale. Q8 Round-trip fidelity + canonicalization for dedup (Topic 26). Q9 API contracts: envelopes, pagination, error shapes, idempotency. Q10 Customer-360 doc design: grain, arrays, refresh cadence, size limits. Q11 Streaming late / extra fields; tolerant extraction; quarantine. Q12 Cost of row-explosion (jsonb_array_elements) and how to mitigate it. Q13 Hybrid relational + JSON modeling; when to normalize fields out. Q14 Time-series-in-JSON vs relational fact - the tradeoffs. Q15 A validation framework in SQL (keys / types / enums / ranges). Q16 Index-only / containment acceleration limits for deep paths. Q17 Multi-tenant JSON isolation + per-tenant schema drift. Q18 Reconciliation guarantees JSON <-> relational (totals, counts). Q19 Pivoting unknown / dynamic JSON keys - bounded approaches (Topic 21). Q20 Security: avoiding injection when building JSON from free text. Q21 Compression / TOAST behavior of large JSONB and its perf implications. Q22 Backfilling / replaying event JSON idempotently (Topic 26). Q23 Observability payloads (latency / error) and SLO computation (Topic 22). Q24 When JSON is the wrong tool - relational-first guidance. Q25 Designing a semi-structured data contract for downstream BI. INGESTION & OBSERVABILITY ENGINES Q26 API observability engine: per endpoint/method count, error %, P50/95/99, hourly trend (Topic 22+23) as JSON. Q27 Event-stream flattener at scale: events -> typed facts, sessionized (Topic 23). Q28 Payload validator engine: keys/types/enums/ranges; pass vs quarantine; report. Q29 Schema-drift detector: per day missing / extra keys across event docs (Topic 23). Q30 Error-budget engine: rolling P95 latency SLO + burn rate JSON (Topic 22+23). Q31 User-agent classifier: device/browser from extracted ua (LIKE/regex, Topic 26 preview). Q32 Anomaly engine: latency beyond P99 per endpoint with context (Topic 22). Q33 Funnel engine from event JSON: stage counts, drop-off, time-between (Topic 23). Q34 Reconciliation engine: built-JSON order totals vs relational; mismatch report. Q35 Versioned-payload engine: branch v1/v2 extraction; unify into one schema. Q36 Containment search engine: @> queries + index plan note (Days 19-20). Q37 JSONPath query engine: predicate extraction across nested docs. Q38 Time-series payload engine: per region date->rev object + moving averages (Topic 23). Q39 Heatmap JSON engine: weekday x hour nested object, normalized (Topic 23). Q40 Dynamic-key pivot engine: bounded jsonb_object_keys -> columns (Topic 21). Q41 Canonicalize + dedup engine: strip_nulls / sort -> hash -> duplicates (Topic 26 preview). Q42 Multi-metric region-doc engine: median/P90/P95/IQR (Topic 22) nested. Q43 Cohort-triangle JSON engine: cohort->period->retention + LTV (Topic 23). Q44 RFM segment engine: NTILE scores (Topic 16) -> segment doc + counts. Q45 Audit-change engine: record_changes -> JSON; > 50% jumps; per-table summary. Q46 Pagination + filter API engine: envelope, @> filter, sort, page slice. Q47 Pricing-drift engine: per product latest vs median (Topic 22) JSON + alerts. Q48 Inventory-freshness engine: latest snapshot per SKU JSON (Topic 22) + days-of-cover. Q49 SLA scorecard engine: per priority median/P95/P99 resolution + breach % JSON. Q50 Reshape engine: unpivot -> {metric,value}[] -> re-pivot (Topic 21) round-trip. CUSTOMER-360 & MART PIPELINES Q51 Customer-360 mart: profile + orders[] + reviews[] + tickets[] + payments[] + latest + median/P95 (Topic 22). Q52 Validate + flatten the 360 doc fully; reconcile every array vs base tables. Q53 Region rollup mart: stores[] -> monthly revenue[] -> KPIs (Topic 23) nested. Q54 Catalog mart: category->brands[]->products[] with promo/margin/booleans, deep paths. Q55 Order-export service: nested doc + envelope + idempotency key. Q56 Cohort + LTV mart JSON: cohort->period->{retention, cum_revenue} (Topic 23). Q57 Inventory mart: warehouse->SKUs[] latest snapshot + value + cover (Topic 22). Q58 Activity-unifier mart: latest of orders/views/tickets/calls per customer (Topic 22). Q59 Time-series mart: per region date->{rev, ma7, ma28, mom} JSON (Topic 23). Q60 Funnel mart: per cohort stage counts + drop-off JSON (Topic 23). Q61 Pricing-book mart: per product as-of monthly price[] (Topic 23) + drift. Q62 RFM mart: per customer scores + segment + recency decile (Topic 16/22) JSON. Q63 SLA mart: per region/priority median/P95 + breach % (Topic 22) nested. Q64 Audit-trail mart: per record change-history[] with latest highlighted (Topic 22). Q65 Heatmap mart: device->weekday->hour counts (Topic 23) 3-level nested. Q66 Lifecycle mart: per customer stage timeline + as-of tier (Topic 22/23). Q67 Reconciliation mart: JSON vs relational totals per region; assertions. Q68 Paginated catalog API with filters (@>) + sort + envelope + meta. Q69 Multi-grain rollup JSON: store->region->all via GROUPING SETS (Topic 21). Q70 Anomaly mart: daily revenue P95/P99 flags (Topic 22/23) as JSON alerts. Q71 Schema-versioned customer doc; migrate v1->v2 in-query (concept; writes -> practice). Q72 Sparkline mart: per entity 12-month arrays (Topic 23) for the UI. Q73 Validation + quarantine mart: invalid docs with reasons. Q74 Build + index-plan note (Days 19-20) for the 360 mart's containment access. Q75 End-to-end mart: rows -> nested -> validate -> flatten -> reconcile -> export. PRODUCTION SEMI-STRUCTURED SYSTEMS Q76 Customer-360 production mart (full doc) + MV materialization note (Topic 25). Q77 API observability platform JSON: endpoints x methods, error %, P50/95/99, trends (Topic 22+23). Q78 Event analytics platform: flatten -> sessionize -> funnel -> retention JSON (Topic 23). Q79 Real-time-ish SLO board: rolling P95 latency + error-budget burn (Topic 22+23). Q80 Pricing governance JSON: latest vs corridor (P25-P75, Topic 22) + drift alerts. Q81 Inventory command JSON: per warehouse latest + cover + stockout streaks (Topic 22/23). Q82 Cohort + LTV dashboard JSON: triangle + cum revenue + latest cohort (Topic 23). Q83 RFM + segmentation export: per customer JSON for CRM activation (Topic 16). Q84 Fraud / anomaly sweep JSON: P99 outliers + context per region (Topic 22). Q85 Audit-compliance JSON: change history + > 50% jumps + actor (Topic 26 preview). Q86 Funnel + drop-off JSON per channel / hour (Topic 23) for growth. Q87 Region exec dashboard JSON: median/P90/P95 AOV, SLA%, latest, rank (Topic 22+23). Q88 Schema-registry-style validation gateway (keys / types / enums / versions). Q89 Pagination / filter / sort API over 360 docs (envelope, @>, JSONPath). Q90 Heatmap product JSON: device x weekday x hour normalized (Topic 23). Q91 Reconciliation suite across all marts; consistency assertions. Q92 Time-series anomaly alerting JSON (WoW P95 shift, Topic 23). Q93 Customer activity unifier + lifecycle-stage JSON (Topic 22/23). Q94 Catalog + promo API JSON with computed fields + booleans + margins. Q95 Multi-tenant-style per-region doc isolation + drift report. Q96 SLA dynamic-target JSON: target = prior-quarter P90 (Topic 22) attainment. Q97 Observability + business KPIs unified JSON per region. Q98 Backfill / replay-safe ingestion design note + reconciliation query. Q99 End-to-end platform: ingest -> validate -> flatten -> aggregate -> export, one pipeline. Q100 Capstone: the production customer-360 + region-KPI JSON service (nested docs, validation, median/P95, latest, reconciliation), noting GIN index (Topic 20) + MV refresh (Topic 25).