【发布时间】:2021-12-29 09:44:40
【问题描述】:
这是一个文章表,我想根据条件将 next rows 中 Mass Column 的总和存储在 sumNext Column 中。
如果下一行与当前行具有相同的楼层(在 floorNo 列中),则添加下一行的质量,直到楼层发生变化
例如:第三行有 sumNext = 2。这是通过将第 4 行和第 5 行的质量相加来计算的,因为这两行的楼层数与第 3 行相同。
| id | mass | symbol | floorNo | sumNext |
|---|---|---|---|---|
| 2891176 | 1 | D | 1 | 0 |
| 2891177 | 1 | L | 8 | 0 |
| 2891178 | 1 | L | 1 | 2 |
| 2891179 | 1 | L | 1 | 1 |
| 2891180 | 1 | 1 | 0 | |
| 2891181 | 1 | 5 | 2 | |
| 2891182 | 1 | 5 | 1 | |
| 2891183 | 1 | 5 | 0 |
这里是查询,就是生成这个表,我只想在里面加上正确值的 sumNext 列。
WITH items AS (SELECT
SP.id,
SP.mass,
SP.symbol,
SP.floorNo
FROM articles SP
ORDER BY
DECODE(SP.symbol,
'P',1,
'D',2,
'L',3,
4 ) asc)
SELECT CLS.*
FROM items CLS;
【问题讨论】: