

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Elenco SELECT
<a name="r_SELECT_list"></a>

**Topics**
+ [Sintassi](#r_SELECT_list-synopsis)
+ [Parameters](#r_SELECT_list-parameters)
+ [Note per l'utilizzo](#r_SELECT_list_usage_notes)
+ [Esempi](#r_SELECT_list-examples)

L'elenco SELECT assegna un nome a colonne, funzioni ed espressioni che la query deve restituire. L'elenco rappresenta l'output della query. 

Per ulteriori informazioni sulle funzioni SQL, consulta [Informazioni di riferimento sulle funzioni SQL](c_SQL_functions.md). Per ulteriori informazioni sulle espressioni, consulta [Espressioni condizionali](c_conditional_expressions.md).

## Sintassi
<a name="r_SELECT_list-synopsis"></a>

```
SELECT
[ TOP number ]
[ ALL | DISTINCT ] * | expression [ AS column_alias ] [, ...]
```

## Parameters
<a name="r_SELECT_list-parameters"></a>

TOP *number*   
TOP accetta come argomento un integer positivo che definisce il numero di righe che vengono restituite al client. Il comportamento con la clausola TOP è uguale al comportamento con la clausola LIMIT. A differenza del set di righe, il numero di righe restituito è fisso. Per restituire un set coerente di righe, utilizza TOP o LIMIT insieme a una clausola ORDER BY. 

ALL   
Parola chiave ridondante che definisce il comportamento predefinito se non specifichi DISTINCT. `SELECT ALL *` è identico a `SELECT *` (seleziona tutte le righe per tutte le colonne e conserva i duplicati). 

DISTINCT   
Opzione che elimina le righe duplicate dal set di risultati, in base ai valori corrispondenti in una o più colonne.   
Se l’applicazione prevede l’utilizzo di chiavi esterne o chiavi primarie non valide, alcune query potrebbero restituire risultati sbagliati. Ad esempio, una query SELECT DISTINCT potrebbe restituire righe doppie se la chiave primaria non contiene tutti valori univoci. Per ulteriori informazioni, consulta [Definizione di limitazioni delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Defining_constraints.html).

\$1 (asterisco)   
Restituisce l'intero contenuto della tabella (tutte le colonne e tutte le righe). 

 *espressione*   
Espressione formata da una o più colonne presenti nelle tabelle a cui fa riferimento la query. Un'espressione può contenere funzioni SQL. Ad esempio:   

```
avg(datediff(day, listtime, saletime))
```

AS *column\$1alias*   
Nome temporaneo per la colonna che viene utilizzata nel set di risultati finale. La parola chiave AS è facoltativa. Ad esempio:   

```
avg(datediff(day, listtime, saletime)) as avgwait
```
Se non specifichi un alias per un'espressione che non è un semplice nome di colonna, il set di risultati applica un nome predefinito a quella colonna.   
L'alias viene riconosciuto subito dopo essere stato definito nell'elenco di destinazione. Puoi utilizzare un alias in altre espressioni definite successivamente nello stesso elenco di destinazione. Nell'esempio seguente viene descritto quanto segue.   

```
select clicks / impressions as probability, round(100 * probability, 1) as percentage from raw_data;
```
Il vantaggio del riferimento alias laterale è che non devi ripetere l'espressione con alias quando crei espressioni più complesse nello stesso elenco di destinazione. Quando Amazon Redshift analizza questo tipo di riferimento, gli alias definiti precedentemente vengono posti in linea. Se esiste una colonna con lo stesso nome definita nella clausola `FROM` come espressione con alias precedente, la colonna nella clausola `FROM` ha la priorità. Ad esempio, nella query precedente se è presente una colonna denominata "probability" nella tabella raw\$1data, la "probability" nella seconda espressione nell'elenco di destinazione fa riferimento a tale colonna invece che al nome alias "probability". 

## Note per l'utilizzo
<a name="r_SELECT_list_usage_notes"></a>

TOP è un'estensione SQL e costituisce un'alternativa al comportamento di LIMIT. Non puoi utilizzare TOP e LIMIT nella stessa query.

## Esempi
<a name="r_SELECT_list-examples"></a>

L'esempio seguente restituisce 10 righe dalla tabella SALES. Sebbene la query utilizzi la clausola TOP, restituisce comunque un set di righe non prevedibile perché non è specificata alcuna clausola ORDER BY:

```
select top 10 *
from sales;
```

La seguente query è funzionalmente equivalente, ma utilizza una clausola LIMIT invece di una clausola TOP:

```
select *
from sales
limit 10;
```

Il seguente esempio restituisce le prime 10 righe dalla tabella SALES mediante la clausola TOP, ordinate in base alla colonna QTYSOLD in ordine decrescente.

```
select top 10 qtysold, sellerid
from sales
order by qtysold desc, sellerid;

qtysold | sellerid
--------+----------
8 |      518
8 |      520
8 |      574
8 |      718
8 |      868
8 |     2663
8 |     3396
8 |     3726
8 |     5250
8 |     6216
(10 rows)
```

Il seguente esempio restituisce i primi due valori QTYSOLD e SELLERID dalla tabella SALES, ordinati in base alla colonna QTYSOLD:

```
select top 2 qtysold, sellerid
from sales
order by qtysold desc, sellerid;

qtysold | sellerid
--------+----------
8 |      518
8 |      520
(2 rows)
```

L'esempio seguente mostra l'elenco di gruppi di categorie distinti dalla tabella CATEGORY:

```
select distinct catgroup from category
order by 1;

catgroup
----------
Concerts
Shows
Sports
(3 rows)

--the same query, run without distinct
select catgroup from category
order by 1;

catgroup
----------
Concerts
Concerts
Concerts
Shows
Shows
Shows
Sports
Sports
Sports
Sports
Sports
(11 rows)
```

L'esempio seguente restituisce il set distinto di numeri delle settimane per dicembre 2008. Senza la clausola DISTINCT, l'istruzione restituirebbe 31 righe o una per ogni giorno del mese.

```
select distinct week, month, year
from date
where month='DEC' and year=2008
order by 1, 2, 3;

week | month | year
-----+-------+------
49 | DEC   | 2008
50 | DEC   | 2008
51 | DEC   | 2008
52 | DEC   | 2008
53 | DEC   | 2008
(5 rows)
```

