| Kind | Count | What they do |
|---|---|---|
| Verbs | 14 | Steps in a pipeline. Every one is an imperative English verb |
| Aggregations | 9 | Collapse a group to one value |
| Windows | 5 | Answer for every row by looking at the other rows |
| Scalar functions | 17 | Answer for one row from that row |
| Grammar words | 25 | The small words that join the rest together |
Appendix B — Every word in the grammar
The whole vocabulary, on one page. If you are deciding whether to learn this, read the list and see how long it takes: that is the argument, and it is shorter than the argument for it.
Nothing here is typed by hand. The engine is asked what words it has when this page is built, so the list cannot describe a word that was removed or miss one that was added.
B.1 The verbs
A pipeline is a table, then then, then one of these, repeated.
`keep` · `pick` · `add` · `summarize` · `sort` · `take` · `join` · `add_rows` · `drop_duplicates` · `rename` · `drop_missing` · `fill_missing` · `lengthen` · `widen`
keep and pick are the two that choose: rows and columns. add and summarize are the two that make a column: one per row, and one per group. sort and take order and cut. Everything after those six is either a second table, a missing value, or a change of shape.
B.2 The aggregations
These go inside summarize, and inside add when it carries a by.
`total` · `average` · `median` · `smallest` · `largest` · `first` · `last` · `unique_count` · `row_count`
B.3 The windows
These answer once per row by looking along the other rows. Several of them require a sort in front, because they mean nothing until something has said in what order.
`rank` · `row_number` · `running_total` · `previous` · `following`
B.4 The scalar functions
One row in, one value out. These go anywhere a value goes.
`first_present` · `lower` · `upper` · `to_number` · `to_whole` · `to_text` · `to_date` · `trim` · `replace_text` · `split_text` · `characters` · `between` · `year` · `month` · `day` · `weekday` · `hour`
B.5 The grammar words
Not verbs and not functions. These are the joints: they say how the words on either side of them are related.
`then` · `where` · `as` · `by` · `all_but` · `descending` · `in` · `is` · `not` · `and` · `or` · `yes` · `no` · `missing` · `unmatched` · `starts` · `ends` · `contains` · `name` · `value` · `kind` · `giving` · `when` · `otherwise` · `matching`
B.6 That is all of it
There is no second list, no set of helpers, and no dialect that adds a few more on a cluster. A word that is not above is not in the grammar, and asking for one gets a refusal that names the nearest word that is.