Funzione finestra AVG - Amazon Redshift

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.

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

Funzione finestra AVG

La funzione finestra AVG restituisce la media (media aritmetica) dei valori di espressione di input. La funzione AVG funziona con i valori numerici e ignora i valori NULL.

Sintassi

AVG ( [ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )

Arguments (Argomenti)

expression

L'espressione o colonna di destinazione su cui viene eseguita la funzione.

ALL

Con l'argomento ALL, la funzione mantiene tutti i valori duplicati dall'espressione per il conteggio. ALL è il valore predefinito. DISTINCT non è supportato.

OVER

Specifica le clausole finestra per le funzioni di aggregazione. La clausola OVER distingue le funzioni di aggregazione delle finestre dalle normali funzioni di aggregazione dell'insieme.

PARTITION BY expr_list

Definisce la finestra per la funzione AVG in termini di una o più espressioni.

ORDER BY order_list

Ordina le righe all'interno di ogni partizione. Se non viene specificato nessun PARTITION BY, ORDER BY utilizza l'intera tabella.

frame_clause

Se una clausola ORDER BY viene utilizzata per una funzione di aggregazione, è necessaria una clausola del frame esplicita. La clausola frame raffina l'insieme di righe in una finestra della funzione, includendo o escludendo insieme di righe all'interno del risultato ordinato. La clausola frame è composta dalla parola chiave ROWS e dagli specificatori associati. Per informazioni, consultare Riepilogo della sintassi della funzione finestra.

Tipi di dati

I tipi di argomenti supportati dalla funzione AVG sono SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL e DOUBLE PRECISION.

I tipi di restituzione supportati dalla funzione AVG sono:

  • BIGINT per gli argomenti SMALLINT oppure INTEGER

  • NUMERIC per gli argomenti BIGINT

  • DOUBLE PRECISION per argomenti del numero in virgola mobile

Esempi

Nel seguente esempio viene calcolata una media mobile delle quantità vendute per data; i risultati sono ordinati per ID data e ID vendite:

select salesid, dateid, sellerid, qty, avg(qty) over (order by dateid, salesid rows unbounded preceding) as avg from winsales order by 2,1; salesid | dateid | sellerid | qty | avg ---------+------------+----------+-----+----- 30001 | 2003-08-02 | 3 | 10 | 10 10001 | 2003-12-24 | 1 | 10 | 10 10005 | 2003-12-24 | 1 | 30 | 16 40001 | 2004-01-09 | 4 | 40 | 22 10006 | 2004-01-18 | 1 | 10 | 20 20001 | 2004-02-12 | 2 | 20 | 20 40005 | 2004-02-12 | 4 | 10 | 18 20002 | 2004-02-16 | 2 | 20 | 18 30003 | 2004-04-18 | 3 | 15 | 18 30004 | 2004-04-18 | 3 | 20 | 18 30007 | 2004-09-07 | 3 | 30 | 19 (11 rows)

Per una descrizione della tabella WINSALES, consultare Tabella di esempio per gli esempi della funzione finestra.