这是我的桌子

 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

随机推荐

  1. 如果我只需要对一列应用不同的函数,是否可以应用一个agg函数而不列出所有列

    给定的df = pd.DataFrame(np.random.rand(4,4), columns=list(abcd)) df a b c d 0 0...

  2. 需要对透视中的列求和,而不是按列分组

    当我运行查询时SELECT DATENAME(MONTH, Ord.LastDateModified) + - + CONVERT(varchar(10), YEAR(Ord.LastDateModified)) AS Months, ...

  3. WebForms UnobtrusiveValidationMode需要对jquery使用ScriptResourceMapping。请添加一个名为jquery的ScriptResourceMapping(区分大小写)

    我正在使用Visual Studio 2012构建Web应用程序。我试图将字数添加到我的文本框中。但是,在添加javascript代码和html代码之后。我收到上述错误。 这是我的JavaScript代码 代码: function ...

  4. 我需要对结果集进行分组

    我正在使用SQL Server2014。我有个问题select * from ( select [DataTime] datatime,[Temperature] temperature,[Humidity] hu...

  5. 需要对临时表中的表执行SQL insert查询,而不是重复

    我需要从临时表插入到表中,而不复制临时表中的数据。即,对于每个客户需要使用SpecialCreditNoteAwarded插入单行我的临时表:CustID SalesMasterID SpecialCreditNoteAwarded ...

  6. 我需要对多模块Phalcon应用程序的路由有一些了解

    我需要一些多模块Phalcon应用程序的帮助。我按照https://github.com/phalcon/mvc/tree/master/multiple的说明进行了操作,但无法让变量路由为非默认模块工作。$router = new Rou...

  7. 如果使用SSL,是否需要对数据POSTed进行哈希处理?

    在一些敏感的应用中,比如支付系统,代码是这样设置的:当用户向服务器发送信息时,例如:{money_amount: 5, receiver_id: 2}复制它还需要发送一个散列字符串,例如:hash_by_client = make_hash...

  8. 用javascript编写通过测试需要对我的代码进行审查

    我正在学习和练习写一个测试:下面是测试用例add-numbers.test.jsvar addAllnumbers = require(./add-numbers); test(Add all numbers, function () { ...

  9. 需要对递归进行一些澄清

    最近我在Python教程中发现了一些关于递归的代码,它是一个基本的阶乘递归:def factorial(n): print(factorial has been called with n = + str(n)) if n == 1: ...

  10. 需要对相同类型的对象进行比较才能了解javascript中的差异

    我需要比较对象,以了解哪些属性已更改,哪些属性是新添加的。是否有任何代码片段将循环遍历整个对象及其属性,并在存在任何更改时发出警报,并继续其过程直到结束。考虑到我需要比较extjs中的gridpanel(对象)在其父面板的show和hide...