WITH clause
The with clauses allow you to give names to subquery which you can then reference. The syntax for a with clause is:SELECT clause
The select cause is a comma-separated list of expressions, with an optional alias. Column names must be unique.FROM clause
TheFROM
clause specifies the primary source of data.
It will be either a table name or subquery.
The table name can be either a saved source,
a table created in the WITH
clause or a table created via CREATE TABLE
and inserted into.
Tables can be given aliases, but will default to their name as the alias for things like joins.
JOIN clause
TheJOIN
clause allows you to join multiple tables together.
See the join documentation for more details.
WHERE clause
TheWHERE
clause allows you to filter the data with a boolean condition.
This predicate is applied to the incoming rows, so cannot include conditions on the resulting columns.
GROUP BY clause
TheGROUP BY
clause is used to compute aggregates over some set of fields.
All GROUP BY queries will implicitly include a time window,
and if the input doesn’t already have a time window,
it should be specified as one of the grouping fields.
For example,
HAVING clause
The HAVING clause allows filtering on the result of aggregations (as opposed to WHERE, which filters on the inputs to the aggregation). For example:UNNEST operator
TheUNNEST
operator allows you to unnest arrays into multiple rows. This can be used
as a normal scalar function with the following restrictions:
- It may only appear in the
SELECT
clause - Only one array may be unnested per select statement For example,