Selections
Selections are virtual views on the project graph and other data which allow to work with transformed intermediate data structures.
A single selection is basically a dynamic volatile set of key value pairs which doesn't have to reflect any persistent structures.
Selections can be combined and transformed in many ways. They are also the basis for many statistical analyses.

A single selection is basically a dynamic volatile set of key value pairs which doesn't have to reflect any persistent structures.
Selections can be combined and transformed in many ways. They are also the basis for many statistical analyses.

Selecting data
Selecting specific values:
Selecting attributes from elements:
Selecting rows from tables (rows as selections and columns as keys):
Selecting columns from tables (columns as selections and rows as keys):
Selecting specific value
Selecting attributes from elements:
Selecting attributes
Selecting rows from tables (rows as selections and columns as keys):
Selecting rows
Selecting columns from tables (columns as selections and rows as keys):
Selecting columns
Joins
Selections can be joined together, corresponding to a join operation in relational algebra.
Cross Join
A Cross Join combines each selection of the left set with each selection of the right set.
Cross Join
Inner Join
An Inner Join combines each selection of the left set with each selection of the right set where the values of the given keys match. Only matching combinations are resulting.
Inner Join
Natural Join
A Natural Join combines each selection of the left set with each selection of the right set where the values of all keys match which are available in both selections.
Natural Join
Left Outer Join
A Left Outer Join combines each selection of the left set with each selection of the right set where the values of the given keys match. Also non-matching selections of the left set are resulting.
Left Outer Join
Right Outer Join
A Right Outer Join combines each selection of the left set with each selection of the right set where the values of the given keys match. Also non-matching selections of the right set are resulting.
Right Outer Join
Mappings
Selections can be mapped to derived selections. Mapping values maps the values for a given key.
Map values for key
Filtering
Selection can be filtered in many ways.
Filtering Selections
Like any bulk, a bulk of selections can also be filtered with a custom predicate — for example by a minimum value for a specific key:
Filtering with a predicate
Sorting
Selections can be sorted in any way.
Sorting Selections
Alternatively, a bulk of selections can be sorted by a custom key extractor:
Sorting with a key extractor