# Rank Tuple ranking ## Signature rank(operand: Relation, order: Ordering, as: AttrName) -> Relation ## Examples rank(suppliers, [:status], :ranking) rank(suppliers, [:status, :sid], :ranking) ## Description Extends tuples from `operand` with a new attribute (`as`) capturing the tuple position with respect to `order`. The ranking of a tuple `t` is more precisely defined as the number of tuples from `operand` that would come strictly before `t` if they were all ordered according to `order`. 'Equal' tuples with respect to `order` are not counted in this ranking. This means that, unless `order` is a total order, duplicate ranking may be observed. In contrast, if `order` covers a candidate key then the ranking attribute (`as`) is unique, and therefore defines an additional candidate key for the resulting relation. ## Implementation notes Note that this operator does not compile to SQL so far. The `page` and `frame` operators provide useful alternatives when the aim is to compute a subset of tuples based on a ranking.