Last tested: Apr 29, 2019
Yes. A query in a dimension is called a correlated sub-query.
If the sub-query is based (FROM) on an UNNEST of an array. It is a great thing to do (BigQuery, Snowflake and Postgres all support this).
If the sub-query is based (FROM) on another table it is discouraged.
Because it is not performant. It's generally a bad idea to create a subquery in a dimension because that subquery will be rerun for every row being calculated. The recommendation is to use a derived table instead so that the subquery would only be run once.
In most databases, it's possible. The problem most users run into is that subqueries return multiple rows but every SELECT clause element only expects a single row. So if you add LIMIT 1 to your subquery, it will usually work.
Of course, this often defeats the purpose of your subquery, in which case you will want to create a derived table which has the subquery inside and join the derived table view back to the main explore.
Subqueries in dimensions are not possible in the following databases:
This content is subject to limited support.