FirebirdSQL logo

DENSE_RANK()

Доступно в

DSQL

Синтаксис
DENSE_RANK() OVER {<window_specification> | window_name}
Тип возвращаемого результата

BIGINT

Возвращает ранг строк в секции результирующего набора без промежутков в ранжировании.Строки с одинаковыми значениями <order_exp> получают одинаковый ранг в пределах группы <partition_exp>, если она указана.Ранг строки равен количеству различных значений рангов в секции, предшествующих текущей строке, увеличенному на единицу.

Example 1. Использование DENSE_RANK
SELECT
  id,
  salary,
  DENSE_RANK() OVER (ORDER BY salary)
FROM employee
ORDER BY salary;
Результат
id salary dense_rank
-- ------ ----------
3    8.00          1
4    9.00          2
1   10.00          3
5   10.00          3
2   12.00          4

RANK()

Доступно в

DSQL

Синтаксис
RANK() OVER {<window_specification> | window_name}
Тип возвращаемого результата

BIGINT

Возвращает ранг каждой строки в секции результирующего набора.Строки с одинаковыми значениями <order_exp> получают одинаковый ранг в пределах группы <partition_exp>, если она указана.Ранг строки вычисляется как единица плюс количество рангов, находящихся до этой строки.

Example 1. Использование RANK
SELECT
  id,
  salary,
  RANK() OVER (ORDER BY salary)
FROM employee
ORDER BY salary;
Результат
id salary rank
-- ------ ------
3    8.00      1
4    9.00      2
1   10.00      3
5   10.00      3
2   12.00      5