j'ai un Tabel qui ressemble à ceci:Retour la ligne avec la valeur de la ligne précédente dans le même groupe (Oracle Sql)
|--------+------+---------|------|
| Head | ID | Amount | Rank |
|--------+------+---------|------|
| 1 | 10 | 1000 | 1 |
| 1 | 11 | 1200 | 2 |
| 1 | 12 | 1500 | 3 |
| 2 | 20 | 3400 | 1 |
| 2 | 21 | 3600 | 2 |
| 2 | 22 | 4200 | 3 |
| 2 | 23 | 1700 | 4 |
|--------+------+---------|------|
Je veux une nouvelle colonne (New_column
) qui effectue les opérations suivantes:
|--------+------+---------|------|------------|
| Head | ID | Amount | Rank | New_column |
|--------+------+---------|------|------------|
| 1 | 10 | 1000 | 1 | 1000 |
| 1 | 11 | 1200 | 2 | 1000 |
| 1 | 12 | 1500 | 3 | 1200 |
| 2 | 20 | 3400 | 1 | 3400 |
| 2 | 21 | 3600 | 2 | 3400 |
| 2 | 22 | 4200 | 3 | 3600 |
| 2 | 23 | 1700 | 4 | 4200 |
|--------+------+---------|------|------------|
Dans chaque numéro tête, si le rang est pas 1, prend le montant de la ligne dans le numéro de tête avec le numéro de rang avant qu'il (rang 2 prend le montant de rang 1 dans le même chef et le rang 3 prend la montant du rang 2 dans la même tête et ainsi de suite ...)
Je sais comment réparer avec une boucle For
dans d'autres langages de programmation, mais je ne sais pas comment le faire avec SQL
.