Bonnard Docs

Types

The 12 measure types available for aggregating data.

Overview

There are 12 measure types that determine how values are aggregated. Choose the right type based on your analytical needs.

Measure Types

count

Counts the number of rows.

- name: count
  type: count

count_distinct

Counts unique values of a column.

- name: unique_users
  type: count_distinct
  sql: user_id

count_distinct_approx

Approximate count distinct (faster for large datasets).

- name: approx_unique_users
  type: count_distinct_approx
  sql: user_id

sum

Adds up numeric values.

- name: total_revenue
  type: sum
  sql: amount

avg

Calculates the average of numeric values.

- name: average_order_value
  type: avg
  sql: amount

min

Returns the minimum value.

- name: first_order_date
  type: min
  sql: created_at

max

Returns the maximum value.

- name: last_order_date
  type: max
  sql: created_at

number

A calculated number (not aggregated from rows).

- name: conversion_rate
  type: number
  sql: "\{completed_orders\} / NULLIF(\{total_orders\}, 0)"

string

A calculated string value.

- name: status_label
  type: string
  sql: "'Active'"

time

A calculated time value.

- name: current_timestamp
  type: time
  sql: NOW()

boolean

A calculated boolean value.

- name: has_orders
  type: boolean
  sql: "\{count\} > 0"

number_agg

Custom aggregate function (advanced).

- name: median_price
  type: number_agg
  sql: "PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY \{CUBE\}.price)"

See Also

  • cubes.measures
  • cubes.measures.calculated
  • cubes.measures.filters