Skip to main content
This parameter is useful for creating pre-defined rankings like “Top 10 States by Sales” or “Bottom 5 Products by Revenue” without requiring manual filters. This allows you to:
  • Create dimensions that show only the most relevant values for analysis
  • Improve query performance by limiting the number of returned values, or
  • Build reports with ranking without maintaining manual lists
When used, Omni generates a query that:
  1. Aggregates the specified measure
  2. Sorts by that measure
  3. Limits to the specified number of values
  4. Returns the dimension values that meet the criteria

Syntax

<dimension_name>:
  sql: <sql_expression>
  dynamic_top_n:
    n: <number>
    by: <measure_reference>
    desc: <true|false>

Properties

dimension_name
object
The name of the dimension. Dimension names must:
  • Be unique within the view
  • Start with a letter
  • Contain only alphanumeric characters and underscores

Examples

Top 10 states by order count
dimensions:
  top_10_states_by_orders:
    sql: ${users.state}
    dynamic_top_n:
      n: 10
      by: orders.count
Bottom 3 countries by order count
dimensions:
  bottom_3_countries_by_orders:
    sql: ${users.country}
    dynamic_top_n:
      n: 3
      by: orders.count
      desc: false
Top 20 products by revenue
dimensions:
  top_products_by_revenue:
    sql: ${products.name}
    dynamic_top_n:
      n: 20
      by: order_items.total_revenue
Top 5 sales reps by deal value
dimensions:
  top_sales_reps:
    sql: ${sales_reps.name}
    label: Top 5 Sales Reps
    dynamic_top_n:
      n: 5
      by: deals.total_value
      desc: true