Ranking functions |
||
The relational model is based on the fact that the rows in the table have no order, which is a direct consequence of the set-theoretic approach. Therefore, the questions of newcomers, asking: "How do I get the last added to the table row?", seem naive. The answer is: “in no way” if in the table is no column with inserting date or with auto incremented value. In this way a row with maximum value of date or counter can be selected. The question of the last line makes sense only in the aspect of extracting a result of query. It assumes some ordering, which is specified by the ORDER BY clause in the SELECT statement. If no ordering is set (the ORDER BY clause is absent), then we can not rely on the fact that the order of output rows, extracted by some query, is always the same. Because the order is depends on the plan, which the query optimizer choose to execute a query. A plan may vary, and it depends on many factors, which we omit here. Theoretically, each row, extracted by query, is processed independently of other extracted rows. However, in practice often required to match processing row with previously extracted rows (for example, for an accumulating total). In the |