# Statements

A SAQL query loads input data, operates on it, and outputs the result data. A query is made up of statements. Each SAQL statement has an input stream, an operation, and an output stream.

A statement is made up of keywords (such as `filter`, `group`, and `order`), identifiers, literals, and special characters. Statements can span multiple lines and must end with a semicolon.

Assign each query line to an identifier called a stream. The only exception is the last line in a query, which doesn't have to be assigned explicitly.

The output stream is on the left side of the `=` operator and the input stream is on the right side of the `=` operator.

## Example

Each line in this SAQL query is a SAQL statement.

```nolang
q = load "Dataset1";
q = group q by all;
q = foreach q generate sum('Amount') as 'sum_Amount';
```

**See Also**

- [filter](/docs/analytics/bi-dev-guide-saql/guide/bi-saql-statement-filter.md)
- [foreach](/docs/analytics/bi-dev-guide-saql/guide/bi-saql-statement-foreach.md)
- [limit](/docs/analytics/bi-dev-guide-saql/guide/bi-saql-statement-limit.md)
- [offset](/docs/analytics/bi-dev-guide-saql/guide/bi-saql-statement-offset.md)
- [order](/docs/analytics/bi-dev-guide-saql/guide/bi-saql-statement-order.md)
