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à.
MAXfunzione window
La funzione MAX window restituisce il massimo dei valori delle espressioni di input. La MAX funzione funziona con valori numerici e ignora i valori. NULL
Sintassi
MAX ( [ ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )
Argomenti
- expression
-
L'espressione o colonna di destinazione su cui viene eseguita la funzione.
- ALL
-
Con l'argomentoALL, la funzione conserva tutti i valori duplicati dell'espressione. ALLè l'impostazione predefinita. DISTINCT non è supportato.
- OVER
-
Una clausola che specifica le clausole finestra per le funzioni di aggregazione. La OVER clausola distingue le funzioni di aggregazione delle finestre dalle normali funzioni di aggregazione degli insiemi.
- PARTITIONDI expr_list
-
Definisce la finestra per la MAX funzione in termini di una o più espressioni.
- ORDERDI order_list
-
Ordina le righe all'interno di ogni partizione. Se non viene specificato alcun PARTITION BY, ORDER BY utilizza l'intera tabella.
- frame_clause
-
Se viene utilizzata una clausola ORDER BY per una funzione aggregata, è necessaria una clausola 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 e dagli specificatori associatiROWS. Per informazioni, consultare Riepilogo della sintassi della funzione finestra.
Tipi di dati
Accetta qualsiasi tipo di dati come input. Restituisce lo stesso tipo di dati come espressione.
Esempi
Nel seguente esempio sono riportati l'ID vendite, la quantità e la quantità massima dall'inizio della finestra dei dati:
select salesid, qty, max(qty) over (order by salesid rows unbounded preceding) as max from winsales order by salesid; salesid | qty | max ---------+-----+----- 10001 | 10 | 10 10005 | 30 | 30 10006 | 10 | 30 20001 | 20 | 30 20002 | 20 | 30 30001 | 10 | 30 30003 | 15 | 30 30004 | 20 | 30 30007 | 30 | 30 40001 | 40 | 40 40005 | 10 | 40 (11 rows)
Per una descrizione della WINSALES tabella, vedere. Tabella di esempio per gli esempi della funzione finestra
Nel seguente esempio sono mostrati l'ID di vendita, la quantità e la quantità massima in un frame limitato:
select salesid, qty, max(qty) over (order by salesid rows between 2 preceding and 1 preceding) as max from winsales order by salesid; salesid | qty | max ---------+-----+----- 10001 | 10 | 10005 | 30 | 10 10006 | 10 | 30 20001 | 20 | 30 20002 | 20 | 20 30001 | 10 | 20 30003 | 15 | 20 30004 | 20 | 15 30007 | 30 | 20 40001 | 40 | 30 40005 | 10 | 40 (11 rows)