These are the docs for the Metabase master branch. Some features documented here may not yet be available in the latest release. Check out the docs for the latest version, Metabase v0.56.

Time grouping parameter

You can add a parameter to SQL questions to change how results are grouped by time: by day, week, month, and so on.

To add a time grouping parameter, you’ll need:

  • An aggregation (like COUNT).
  • A parameter in the SELECT clause
  • That same parameter in the GROUP BY clause.

Time grouping parameter example

Here’s an example that counts the number of orders in the orders table and inserts a parameter to allow people to change how Metabase groups the results by the created_at column.


SELECT
  COUNT(*) AS "Orders",
  {{created_at_param}} AS "Created At"
FROM
  orders
GROUP BY
  {{created_at_param}}

Like in all SQL groupings, you must include the parameter in both the SELECT and GROUP BY clauses. You can also group by multiple columns, like so:


SELECT
  COUNT(*) AS "Count",
  {{created_at_param}} AS "Created at",
  {{trial_ends_at}} AS "Trial ends at"
FROM
  accounts
GROUP BY
  {{created_at_param}},
  {{trial_ends_at}}

Like with all parameters, you can set a default value (e.g., “month”). With time grouping parameters, you’re limited to the options for the time grouping parameter.

If people don’t set a value for the parameter, Metabase won’t group to a date part (like day or week). It will just group by untruncated dates.

Handling aliases

Just like with field filters, if you alias a table, then map a time grouping parameter to a field in that aliased table, you’ll need to tell Metabase about the table and field alias.

Connecting to a dashboard filter

See dashboard filters and parameters.

Read docs for other versions of Metabase.

Was this helpful?

Thanks for your feedback!
Want to improve these docs? Propose a change.