Articles

RANG

Posted by admin

Aggregate Syntaxe

rank_aggregate::=

Description de l’illustration rank_aggregate.gif

Analytique de Syntaxe

rank_analytic::=

Description de l’illustration rank_analytic.gif

Voir Aussi:

« Fonctions Analytiques » pour plus d’informations sur la syntaxe, de la sémantique, et les restrictions

But

RANK calcule le rang d’une valeur dans un groupe de valeurs. Le type de retour est: NUMBER.,

Voir Aussi:

tableau 2-10, « matrice de Conversion de type implicite » pour plus d’informations sur la conversion implicite et « priorité numérique » pour des informations sur la priorité numérique

Les lignes ayant des valeurs égales pour les critères de classement reçoivent le même rang. Oracle Database ajoute ensuite le nombre de lignes liées au rang lié pour calculer le rang suivant. Par conséquent, les rangs peuvent ne pas être des nombres consécutifs. Cette fonction est utile pour les rapports top-N et bottom-n.,

  • en tant que fonction agrégée, RANK calcule le rang d’une ligne hypothétique identifiée par les arguments de la fonction par rapport à une spécification de tri donnée. Les arguments de la fonction doivent tous être évalués en expressions constantes dans chaque groupe agrégé, car ils identifient une seule ligne dans chaque groupe. Les expressions d’argument constant et les expressions dans la clause ORDER BY de l’agrégat correspondent par position., Par conséquent, le nombre d’arguments doit être la même et leurs types doivent être compatibles.

  • Comme une fonction analytique, RANK calcule le rang de chaque ligne renvoyée à partir d’une requête à l’égard des autres lignes retournées par la requête, fondée sur les valeurs de la balise value_exprs dans le order_by_clause.,

exemple agrégé

l’exemple suivant calcule le rang d’un employé hypothétique dans le tableau d’exemple hr.employees avec un salaire de 15 500 $et une commission de 5%:

SELECT RANK(15500, .05) WITHIN GROUP (ORDER BY salary, commission_pct) "Rank" FROM employees; Rank---------- 105

de même, la requête suivante renvoie le rang pour un salaire de 15 500 $parmi les salaires des employés:

SELECT RANK(15500) WITHIN GROUP (ORDER BY salary DESC) "Rank of 15500" FROM employees;Rank of 15500-------------- 4

exemple analytique

la déclaration suivante classe les employés dans l’échantillon hr schéma dans le département 80 en fonction de leur salaire et de leur commission., Les valeurs salariales identiques reçoivent le même rang et provoquent des rangs non consécutifs. Comparez cet exemple avec L’exemple de DENSE_RANK.

Leave A Comment