RANK

RANK関数は、値のグループ内で値のランクを計算する分析関数です。

SQL構文

RANK () OVER ( [QueryPartitionClause] OrderByClause )

パラメータ

RANKには、次のパラメータがあります。

パラメータ 説明

QueryPartitionClause

構文、セマンティクスおよび制限の詳細は、「分析関数」を参照してください。

OrderByClause

構文、セマンティクスおよび制限の詳細は、「分析関数」を参照してください。

説明

  • 戻り型はNUMBERです。

  • そのランク付け基準に関して同じ値を持つ行は、同じランクになります。TimesTenは連結行の数を連結ランクに追加して、次のランクを計算します。そのため、ランクは連続した数値でない場合があります。

  • RANKは、ある問合せが戻す各行を、その問合せが戻す別の行に対してランクを計算します。このランクは、OrderByClauseの式の値に基づいて計算されます。

RANK関数を使用して、給与や歩合に基づいて部門80の最初の10人の従業員をランク付けします。給与が同じ場合は同じランクになるため、連続しないランクになります。

Command> SELECT first 10 department_id, last_name, salary, commission_pct,
           RANK() OVER (PARTITION BY department_id
           ORDER BY salary DESC, commission_pct) "Rank"
         FROM employees WHERE department_id = 80
         ORDER BY department_id, last_name, salary, commission_pct, "Rank";
< 80, Abel, 11000, .3, 5 >
< 80, Ande, 6400, .1, 31 >
< 80, Banda, 6200, .1, 32 >
< 80, Bates, 7300, .15, 26 >
< 80, Bernstein, 9500, .25, 14 >
< 80, Bloom, 10000, .2, 9 >
< 80, Cambrault, 7500, .2, 23 >
< 80, Cambrault, 11000, .3, 5
< 80, Doran, 7500, .3, 24 >
< 80, Errazuriz, 12000, .3, 3 >
10 rows found.