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à.
COUNTfunzione finestra
La funzione COUNT window conta le righe definite dall'espressione.
La COUNT funzione ha due varianti. COUNT(*) conta tutte le righe della tabella di destinazione indipendentemente dal fatto che includano o meno valori nulli. COUNT(espressione) calcola il numero di righe senza NULL valori in una colonna o espressione specifica.
Sintassi
COUNT ( * | [ 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 per il conteggio. ALLè l'impostazione predefinita. DISTINCT non è supportato.
- OVER
-
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 COUNT 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
La COUNT funzione supporta tutti i tipi di dati relativi agli argomenti.
Il tipo di ritorno supportato dalla COUNT funzione èBIGINT.
Esempi
Nel seguente esempio sono mostrati l'ID vendite, la quantità e il conteggio di tutte le righe dall'inizio della finestra dei dati:
select salesid, qty, count(*) over (order by salesid rows unbounded preceding) as count from winsales order by salesid; salesid | qty | count ---------+-----+----- 10001 | 10 | 1 10005 | 30 | 2 10006 | 10 | 3 20001 | 20 | 4 20002 | 20 | 5 30001 | 10 | 6 30003 | 15 | 7 30004 | 20 | 8 30007 | 30 | 9 40001 | 40 | 10 40005 | 10 | 11 (11 rows)
Per una descrizione della WINSALES tabella, vedereTabella di esempio per gli esempi della funzione finestra.
Nel seguente esempio sono mostrati l'ID vendite, la quantità e il conteggio delle righe non-null dall'inizio della finestra dei dati. (Nella WINSALES tabella, la SHIPPED colonna QTY _ ne contiene alcuniNULLs.)
select salesid, qty, qty_shipped, count(qty_shipped) over (order by salesid rows unbounded preceding) as count from winsales order by salesid; salesid | qty | qty_shipped | count ---------+-----+-------------+------- 10001 | 10 | 10 | 1 10005 | 30 | | 1 10006 | 10 | | 1 20001 | 20 | 20 | 2 20002 | 20 | 20 | 3 30001 | 10 | 10 | 4 30003 | 15 | | 4 30004 | 20 | | 4 30007 | 30 | | 4 40001 | 40 | | 4 40005 | 10 | 10 | 5 (11 rows)