Queries
Query ::= from (Pattern in Expr),+ { QueryStmt+ }
QueryStmt ::=
| select Expr (as Name)? Select
| where Expr Filter
| join (Pattern in Expr),+ on Expr Join
| group Expr,+ (as Name)? Partition
| compute Expr (of Expr)? (as Name)? Aggregation
| order Expr desc? Ordering
| window Expr as Name { WindowLogic+ } Window
| into Expr Piping
WindowLogic ::= WindowKind compute Expr (of Expr)? (as Name)?
WindowKind ::=
| length Expr (step Expr)? Tumbling and sliding window
| count Expr Count window