gpt4 book ai didi

Oracle 解析函数

转载 作者:行者123 更新时间:2023-12-04 03:09:29 25 4
gpt4 key购买 nike

我有类似的问题。你能给我解决方案吗?下面是表值

    10    
20
30
40

我想要这样的输出

10  10-2     8    
20 20-8 12
30 30-12 18
40 40-18 22

按升序排序,第一条记录始终减去 2,并将结果用于后续记录。

最佳答案

SQL Fiddle

Oracle 11g R2 架构设置:

CREATE TABLE TEST ( VAL ) AS
SELECT 10 FROM DUAL
UNION ALL SELECT 20 FROM DUAL
UNION ALL SELECT 30 FROM DUAL
UNION ALL SELECT 40 FROM DUAL;

查询 1:

WITH Parities AS (
SELECT VAL,
MOD( ROW_NUMBER() OVER ( ORDER BY VAL ), 2 ) AS Parity
FROM TEST
)
SELECT VAL,
ABS( SUM( CASE PARITY WHEN 1 THEN -VAL ELSE VAL END ) OVER ( ORDER BY VAL ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) + 2 ) AS total
FROM Parities

Results :

| VAL | TOTAL |
|-----|-------|
| 10 | 8 |
| 20 | 12 |
| 30 | 18 |
| 40 | 22 |

关于Oracle 解析函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com