Can you read a pipeline you have never seen? That was the preface’s day-one promise, and this chapter is where it is tested rather than repeated. Eight questions follow, each answered by one sentence built only from the words of this part. Read each pipeline aloud before you look at its table, then check the table against what you said. Nothing here is new; that is the point.
sales then summarize [orders] as row_count(), [revenue] as total([revenue]) by [region, product]
Every combination that occurred gets a row, and one combination is absent: no North row mentions Sprocket, because the North never sold one. A grouped summary can only report what happened, which matters when a combination you expected is not there.
run(' sales then add [price] as ([revenue] / [quantity]) then summarize [price] as average([price]), [sold] as total([quantity]) by [product] then sort [price] descending')
product
price
sold
Gadget
60
12
Doohickey
40
10
Widget
25
28
Sprocket
15
16
sales |>add(price = revenue / quantity) |>summarize(price =average(price), sold =total(quantity), by = product) |>sort(descending(price))
product
price
sold
Gadget
60
12
Doohickey
40
10
Widget
25
28
Sprocket
15
16
(sales>> add(price = col.revenue / col.quantity)>> summarize(price = average(col.price), sold = total(col.quantity), by = col.product)>> sort(descending(col.price)))
product
price
sold
Gadget
60
12
Doohickey
40
10
Widget
25
28
Sprocket
15
16
sales then add [price] as [revenue] / [quantity] then summarize [price] as average([price]), [sold] as total([quantity]) by [product] then sort [price] descending
Three verbs you know, in an order you can hear: work out each order’s unit price, average it per product, read the dearest first. The averages come out whole because each product held one price all year, which you can verify from the table faster than you can doubt it.
survey then keep where [joined] < "2026-04-01" then pick [name, region, joined]
The comparison is on text, and it works because these dates are written largest unit first; the chapter on dates gives you the real date words for when text alone is not enough.
run(' sales then add [share] as ([revenue] / total([revenue])) by [region] then sort [region], [share] descending then pick [region, product, revenue, share]')
sales then add [share] as [revenue] / total([revenue]) by [region] then sort [region], [share] descending then pick [region, product, revenue, share]
Each region’s shares sum to one, and the biggest single share in the table sits in the North, where one Gadget order carries nearly half its region. This is the hardest sentence in the chapter, and it is made of a verb from adding a column and a word from the words that repeat.
10.9 What you just did
Eight questions, no new words. Every sentence was the everyday core doing its everyday work, and if you read them aloud, you have now heard the grammar more times than you will need to keep it. Reading was recognition. The next chapter asks for the harder thing, and it is the last thing this part asks of you: writing.