Fonction de fenêtrage RATIO_TO_REPORT - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fonction de fenêtrage RATIO_TO_REPORT

Calcule le ratio d’une valeur par rapport à la somme des valeurs dans une fenêtre ou une partition. La valeur de RATIO TO REPORT est déterminée à l’aide de la formule suivante :

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

Le jeu de données suivant illustre l’utilisation de cette formule :

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

La plage de valeur de retour est comprise entre 0 et 1, inclus. Si ratio_expression a la valeur NULL, la valeur renvoyée est NULL. Si une valeur dans partition_expression est unique, la fonction retournera 1 pour cette valeur.

Syntaxe

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

Arguments

ratio_expression

Expression, comme un nom de colonne, qui fournit la valeur pour laquelle déterminer le ratio. L’expression doit disposer d’un type de données numériques ou être convertible implicitement en une.

Vous ne pouvez pas utiliser d’autre fonction analytique dans ratio_expression.

OVER

Clause qui spécifie le partitionnement de fenêtrage. La clause OVER ne peut pas contenir d’ordre de fenêtrage ou de spécification de cadre de fenêtrage.

PARTITION BY partition_expression

Facultatif. Expression qui définit la plage d’enregistrements de chaque groupe dans la clause OVER.

Type de retour

FLOAT8

Exemples

Les exemples suivants utilisent la table WINSALES. Pour en savoir plus sur la façon de créer la table WINSALES, consultez Exemple de tableau contenant des exemples de fonctions de fenêtrage.

L'exemple suivant calcule la ratio-to-report valeur de chaque ligne de la quantité d'un vendeur par rapport au total de toutes les quantités du vendeur.

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’exemple suivant calcule les ratios des volumes de ventes de chaque vendeur, par partition.

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