# Add sequence

The **Add sequence** step adds a sequence to the PDI stream.

A sequence is an ever-changing integer value with a specific start and increment value. You can either use a database sequence to determine the value of the sequence, or have it generated by PDI. PDI-generated sequence values are unique when used in the same transformation, and return to the same starting value each time you run the transformation.

### General options

Enter the following information:

| Option            | Description                                                                                      |
| ----------------- | ------------------------------------------------------------------------------------------------ |
| **Step name**     | Specify the unique name of the step on the canvas. The default is `Step sequence`.               |
| **Name of value** | Specify the name of the new sequence value to add to the PDI stream. The default is `valuename`. |

### Generate a sequence with a transformation counter (PDI)

![Use a transformation counter to generate the sequence](/files/UwWbBtemE9twYj9lJ9jm)

The following table contains options for generating a sequence from a PDI transformation counter:

| Option                                 | Description                                                                                                                                                                                 |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Use counter to calculate sequence?** | Select this checkbox to generate the sequence in PDI. This option is selected by default. If you clear this checkbox, **Use DB to generate the sequence?** is selected automatically.       |
| **Counter name (optional)**            | Specify the counter name if multiple steps in a transformation generate the same value name, to avoid creating separate sequences for each step.                                            |
| **Start at value**                     | Specify the value to start the sequence. For example, if **Start at value** is set to `1`, the sequence starts with `1`. If **Start at value** is set to `0`, the sequence starts with `0`. |
| **Increment by**                       | Specify the amount by which the sequence increases or decreases.                                                                                                                            |
| **Maximum value**                      | Specify the value to reach before the sequence returns to the **Start at value** setting.                                                                                                   |

For example:

* If you set **Start at value** to `1`, **Increment by** to `1`, and **Maximum value** to `3`, the resulting sequence is `1, 2, 3, 1, 2, 3, 1, 2`...
* If you set **Start at value** to `0`, **Increment by** to `-1`, and **Maximum value** to `-2`, the resulting sequence is `0, -1, -2, 0, -1, -2, 0`...

### Generate a sequence with a database sequence

![Add sequence step](/files/pfnWxF3e1wQE64Uk0zeV)

The following table contains options for generating a sequence from a database:

| Option                               | Description                                                                                                                                                                                                                                     |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Use DB to generate the sequence?** | Select this checkbox if you want the sequence to be driven by a database sequence. If you clear this checkbox, **Use counter to calculate sequence?** is selected automatically. **Use counter to calculate sequence?** is selected by default. |
| **Connection**                       | Select the connection where your database sequence resides. If you do not have an existing connection, select **New** or **Wizard**. To modify an existing connection, select **Edit**.                                                         |
| **Schema name** (optional)           | Specify the schema name of any related table. Select **Schemas** to choose a schema within the database specified for **Connection**.                                                                                                           |
| **Sequence name**                    | Specify the name of the database sequence. Select **Sequences** to choose a sequence within the database specified for **Connection**.                                                                                                          |

### See also

The following transformation steps may also be useful when working with sequences:

* [**Add value fields changing sequence**](https://wiki.pentaho.com/display/EAI/Add+value+fields+changing+sequence): Adds a sequence when the values of a field change. Each time a value of at least one field changes, the added sequence resets to its starting point.
* [**Group By**](/pdia-data-integration/10.2-data-integration/pdi-transformation-steps-reference-overview/group-by-landing-page-article.md): Builds aggregates by grouping and generates sequential numbers within rows with repeating values.

See the [Get ID from Slave Server](https://wiki.pentaho.com/display/EAI/Get+ID+from+Slave+Server) step if you need a unique ID in a clustered environment.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pentaho.com/pdia-data-integration/10.2-data-integration/pdi-transformation-steps-reference-overview/add-sequence-step-article.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
