DENSE_RANK
DENSE_RANK関数は分析関数で、順序付けされた行のグループ内の行のランクを計算し、そのランクをNUMBER型として戻します。
SQL構文
DENSE_RANK () OVER ( [QueryPartitionClause] OrderByClause )
パラメータ
DENSE_RANKには、次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
|
|
構文、セマンティクスおよび制限の詳細は、「分析関数」を参照してください。 |
|
|
構文、セマンティクスおよび制限の詳細は、「分析関数」を参照してください。 |
説明
-
ランクは1から始まる連続した整数です。ランクの最大値は、問合せが戻す一意の数値です。同ランクの場合、ランクの値はスキップされません。そのランク付け基準に関して同じ値を持つ行は、同じランクになります。
-
DENSE_RANKは、他の行について、問合せで戻される各行のランクを計算します。この計算は、OrderByClauseにあるExpressionsの値に基づいて行われます。
例
人事部門または購買部門で働くすべての従業員の部門名、従業員名および給与を選択します。この2つの部門それぞれについて、一意の各給与に対するランクを計算します。同じ給与は同じランクになります。
Command> SELECT d.department_name, e.last_name, e.salary, DENSE_RANK()
OVER (PARTITION BY e.department_id ORDER BY e.salary) AS dense
FROM employees e, departments d
WHERE e.department_id = d.department_id
AND d.department_id IN ('30', '40')
ORDER BY e.last_name, e.salary, d.department_name, dense;
< Purchasing, Baida, 2900, 4 >
< Purchasing, Colmenares, 2500, 1 >
< Purchasing, Himuro, 2600, 2 >
< Purchasing, Khoo, 3100, 5 >
< Human Resources, Mavris, 6500, 1 >
< Purchasing, Raphaely, 11000, 6 >
< Purchasing, Tobias, 2800, 3 >
7 rows found.