Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ metric or dimension for the analysis in front of you.
## Creating calculated fields in UI

You can also build and edit calculated fields directly in the workbook. New
fields appear in the **Calculated fields** section of the field picker sidebar.
fields appear in the **Query fields** section of the field picker sidebar.

### Aggregations from existing dimensions

Expand Down Expand Up @@ -83,6 +83,68 @@ The option appears only for **native** measures on pivoted columns, not for
calculated fields. The same flow works in **Explore** when results are pivoted
the same way.

### Bins and value groups

You can also bucket an existing dimension without writing SQL. Open its menu in
the field picker sidebar and choose **Create bins…** on a number dimension, or
**Group values…** on a string one. Time dimensions have granularities instead,
and an already derived field cannot be bucketed again.

<Frame>
<img
src="https://ucarecdn.com/b9890dd7-d82c-4126-a2e5-2f3948eafa72/772aa0f9-light.png"
alt="The Create bins panel on a number dimension, showing typed boundaries, the label styles, a preview of the five buckets, and the generated Semantic SQL"
/>
</Frame>

**Bins** take their boundaries either as a list (**Custom ranges**) or from a
**Start**, **Width**, and number of **Ranges** (**Equal width**). Each boundary
opens a bucket that includes its lower bound and excludes the upper one, and two
open-ended buckets are added at the edges—so `0, 18, 25` yields `< 0`, `[0, 18)`,
`[18, 25)`, `>= 25`, and no row is dropped. **Label style** renders a bucket as
`[10, 20)`, `>= 10 and < 20`, or `10 to 19`; the last is offered only while every
boundary is a whole number. Rows where the dimension is `NULL` are reported as
`Unknown`.

**Value groups** collect the dimension's values into named sets: pick values, name
the group, and choose **Add group**. A value belongs to one group at a time.
Whatever you did not pick—including empty values—falls under **Everything else**,
which defaults to `Other`.

Bucket labels carry their position as a prefix (`1.`, `2.`, zero-padded past nine
buckets) so that sorting the column sorts it by value rather than alphabetically,
which would put `>= 25` before `[0, 18)`. The prefix is visible in results, chart
legends, and axes.

<Frame>
<img
src="https://ucarecdn.com/23ac9cbb-7503-4326-b74c-134ad54e5e7a/6cffb52c-light.png"
alt="A workbook result grouped by the bucketed field: one row per bucket, with the created field listed under Query fields in the sidebar"
/>
</Frame>

The panel previews the Semantic SQL it generates as you build:

```sql
CASE WHEN orders_view.age IS NULL THEN 'Unknown'
WHEN orders_view.age < 0 THEN '1. < 0'
WHEN orders_view.age < 18 THEN '2. [0, 18)'
ELSE '3. >= 18' END
```

<Info>

**Equal width** ranges are resolved into boundaries when the field is created, not
recomputed from the data. Values arriving later outside the range join the first
and last buckets instead of extending them.

</Info>

To change a bucketed field, choose **Edit bins…** or **Edit groups…** from its
menu—either in the sidebar or on its column header in the results. Only fields
this panel generated offer the action; a `CASE` expression written by hand does
not.

### Editing a calculated field

Select a calculated field in the sidebar to open the editor. You can change its
Expand Down
Loading