Subquery scalari - Amazon Redshift

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à.

Subquery scalari

Una subquery scalare è una query SELECT regolare tra parentesi che restituisce esattamente un valore: una riga con una colonna. La query viene eseguita e il valore restituito viene usato nella query outer. Se la subquery restituisce zero righe, il valore dell'espressione della subquery è null. Se restituisce più di una riga, Amazon Redshift restituisce un errore. La subquery può riferirsi a variabili della query padre, che agirà come costante durante qualsiasi invocazione della subquery.

È possibile usare le subquery scalari nella maggior parte delle istruzioni che chiamano un'espressione. Le subquery scalari non sono espressioni valide nei casi seguenti:

  • Come valori predefiniti per espressioni

  • Nelle clausole GROUP BY e HAVING

Esempio

La subquery seguente calcola il prezzo medio pagato per vendita nel corso dell'intero anno 2008, quindi la query outer usa quel valore nell'output per confrontarlo rispetto al prezzo medio per vendita per trimestre:

select qtr, avg(pricepaid) as avg_saleprice_per_qtr, (select avg(pricepaid) from sales join date on sales.dateid=date.dateid where year = 2008) as avg_saleprice_yearly from sales join date on sales.dateid=date.dateid where year = 2008 group by qtr order by qtr; qtr | avg_saleprice_per_qtr | avg_saleprice_yearly -------+-----------------------+---------------------- 1 | 647.64 | 642.28 2 | 646.86 | 642.28 3 | 636.79 | 642.28 4 | 638.26 | 642.28 (4 rows)