需要对oracle sql中的LEAD函数进行一些更正
这是我的桌子
ID NAME YEAR PRICE
--- ------ ------ -------
1 A 2015 3
1 A 2016 4
1 A 2017 7
2 B 2015 4
2 B 2016 2
2 B 2017 6
我需要输出这个
ID NAME LEAD YEAR LEAD_SAL PRICE PRICE
---- ------ ------ ------ --------- ------- ------
1 A 2016 2015 4 3 1
1 A 2017 2016 7 4 3
1 A 2017 7
2 B 2016 2015 2 4 -2
2 B 2017 2016 6 2 4
2 B 2017 6
我的问题
SELECT id, name, LEAD(year,1,NULL) OVER (PARTITION BY id ORDER BY year) lead, year
, LEAD(price,1,NULL) OVER (PARTITION BY id ORDER BY price) lead_sal, price
, LEAD(price,1,NULL) OVER (PARTITION BY id ORDER BY price) - Price Price
FROM price_tb;
但答案是这样的
ID NAME LEAD YEAR LEAD_SAL PRICE PRICE
---- ------ ------ ------ --------- ------- ------
1 A 2016 2015 4 3 1
1 A 2017 2016 7 4 3
1 A 2017 7
2 B 2016 2015 6 4 2
2 B 2017 2016 4 2 2
2 B 2017 6
这里,id 1运行良好,但是id 2给出的输出与预期不同。如何重写此查询?
转载请注明出处:http://www.zhongtian365.com/article/20230513/1030004.html
随机推荐
-
如果我只需要对一列应用不同的函数,是否可以应用一个agg函数而不列出所有列
给定的df = pd.DataFrame(np.random.rand(4,4), columns=list(abcd)) df a b c d 0 0...
-
需要对透视中的列求和,而不是按列分组
当我运行查询时SELECT DATENAME(MONTH, Ord.LastDateModified) + - + CONVERT(varchar(10), YEAR(Ord.LastDateModified)) AS Months, ...
-
WebForms UnobtrusiveValidationMode需要对jquery使用ScriptResourceMapping。请添加一个名为jquery的ScriptResourceMapping(区分大小写)
我正在使用Visual Studio 2012构建Web应用程序。我试图将字数添加到我的文本框中。但是,在添加javascript代码和html代码之后。我收到上述错误。 这是我的JavaScript代码 代码: function ...
-
我需要对结果集进行分组
我正在使用SQL Server2014。我有个问题select * from ( select [DataTime] datatime,[Temperature] temperature,[Humidity] hu...
-
需要对临时表中的表执行SQL insert查询,而不是重复
我需要从临时表插入到表中,而不复制临时表中的数据。即,对于每个客户需要使用SpecialCreditNoteAwarded插入单行我的临时表:CustID SalesMasterID SpecialCreditNoteAwarded ...
-
我需要对多模块Phalcon应用程序的路由有一些了解
我需要一些多模块Phalcon应用程序的帮助。我按照https://github.com/phalcon/mvc/tree/master/multiple的说明进行了操作,但无法让变量路由为非默认模块工作。$router = new Rou...
-
如果使用SSL,是否需要对数据POSTed进行哈希处理?
在一些敏感的应用中,比如支付系统,代码是这样设置的:当用户向服务器发送信息时,例如:{money_amount: 5, receiver_id: 2}复制它还需要发送一个散列字符串,例如:hash_by_client = make_hash...
-
用javascript编写通过测试需要对我的代码进行审查
我正在学习和练习写一个测试:下面是测试用例add-numbers.test.jsvar addAllnumbers = require(./add-numbers); test(Add all numbers, function () { ...
-
需要对递归进行一些澄清
最近我在Python教程中发现了一些关于递归的代码,它是一个基本的阶乘递归:def factorial(n): print(factorial has been called with n = + str(n)) if n == 1: ...
-
需要对相同类型的对象进行比较才能了解javascript中的差异
我需要比较对象,以了解哪些属性已更改,哪些属性是新添加的。是否有任何代码片段将循环遍历整个对象及其属性,并在存在任何更改时发出警报,并继续其过程直到结束。考虑到我需要比较extjs中的gridpanel(对象)在其父面板的show和hide...