# ALL

`ALL` keeps duplicate result rows. It is the default behavior of a SELECT, so `SELECT ALL` and `SELECT` have the same meaning.

`UNION ALL` also preserves duplicates from both inputs. Use [`DISTINCT`](https://coordinatordb.com/docs/reference/statements/select/distinct) or [`UNION`](https://coordinatordb.com/docs/reference/statements/select/union) when duplicate rows should be removed.

## Syntax

```text
SELECT ALL expressions FROM source
query UNION ALL query
```

## Examples

### Retaining repeated values

```sql
CREATE TABLE visits (country TEXT);
INSERT INTO visits VALUES ('GB'), ('GB'), ('FR');
```

```sql
SELECT ALL country
FROM visits
ORDER BY country
FORMAT csv;
```

```text
"FR"
"GB"
"GB"
```

### Appending query results

```sql
SELECT 1 AS value
UNION ALL
SELECT 1
FORMAT csv;
```

```text
1
1
```

`ALL` does not define an output order. Add a final `ORDER BY` when order matters.
