[
WITH
name
AS
(select_expression) [, ...] ]
SELECT
[
ALL
|
DISTINCT
]
[STRAIGHT_JOIN]
expression [, expression ...]
FROM
table_reference [, table_reference ...]
[[
FULL
| [
LEFT
|
RIGHT
]
INNER
| [
LEFT
|
RIGHT
]
OUTER
| [
LEFT
|
RIGHT
] SEMI | [
LEFT
|
RIGHT
] ANTI |
CROSS
]
JOIN
table_reference
[
ON
join_equality_clauses | USING (col1[, col2 ...]] ...
WHERE
conditions
GROUP
BY
{
column
| expression [, ...] }
HAVING
conditions
ORDER
BY
{
column
| expression [
ASC
|
DESC
] [NULLS
FIRST
| NULLS
LAST
] [, ...] }
LIMIT expression [OFFSET expression]
[
UNION
[
ALL
] select_statement] ...]
table_reference := { table_name | (subquery) }
[ TABLESAMPLE SYSTEM(percentage) [
REPEATABLE
(seed)] ]