Funzione finestra RATIO_TO_REPORT - 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à.

Funzione finestra RATIO_TO_REPORT

Calcola il rapporto di un valore per la somma dei valori in una finestra o partizione. Il rapporto con il valore del report viene determinato utilizzando la formula:

value of ratio_expression argument for the current row / sum of ratio_expression argument for the window or partition

Il seguente insieme di dati dimostra l'uso di questa formula:

Row# Value Calculation RATIO_TO_REPORT 1 2500 (2500)/(13900) 0.1798 2 2600 (2600)/(13900) 0.1870 3 2800 (2800)/(13900) 0.2014 4 2900 (2900)/(13900) 0.2086 5 3100 (3100)/(13900) 0.2230

L'intervallo del valore di restituzione è compreso tra 0 e 1, con questi valori compresi. Se ratio_expression è NULL, allora il valore restituito è NULL. Se un valore in partition_expression è unico, la funzione restituirà 1 per quel valore.

Sintassi

RATIO_TO_REPORT ( ratio_expression ) OVER ( [ PARTITION BY partition_expression ] )

Argomenti

ratio_expression

Un'espressione, come ad esempio un nome di colonna, che fornisce il valore per cui determinare il rapporto. L'espressione deve avere o un tipo di dati numerici o essere implicitamente convertibile in uno.

Non è possibile utilizzare altre funzioni analitiche in ratio_expression.

OVER

Una clausola che specifica il partizionamento della finestra. La clausola OVER non può contenere una specifica del frame della finestra o dell'ordinamento della finestra.

PARTITION BY partition_expression

Facoltativo. Un'espressione che imposta l'intervallo di registrazioni per ciascun gruppo nella clausola OVER.

Tipo restituito

FLOAT8

Esempi

Gli esempi seguenti usano la tabella WINSALES. Per informazioni su come creare la tabella WINSALES, consulta Tabella di esempio per gli esempi della funzione finestra.

L'esempio seguente calcola il ratio-to-report valore di ogni riga della quantità di un venditore rispetto al totale di tutte le quantità del venditore.

select sellerid, qty, ratio_to_report(qty) over() from winsales order by sellerid; sellerid qty ratio_to_report -------------------------------------- 1 30 0.13953488372093023 1 10 0.046511627906976744 1 10 0.046511627906976744 2 20 0.09302325581395349 2 20 0.09302325581395349 3 30 0.13953488372093023 3 20 0.09302325581395349 3 15 0.06976744186046512 3 10 0.046511627906976744 4 10 0.046511627906976744 4 40 0.18604651162790697

L'esempio seguente calcola i rapporti delle quantità di vendita per ciascun venditore per partizione:

select sellerid, qty, ratio_to_report(qty) over(partition by sellerid) from winsales; sellerid qty ratio_to_report ------------------------------------------- 2 20 0.5 2 20 0.5 4 40 0.8 4 10 0.2 1 10 0.2 1 30 0.6 1 10 0.2 3 10 0.13333333333333333 3 15 0.2 3 20 0.26666666666666666 3 30 0.4