当前位置: 首页 > 面试题库 >

如何比较表中倒数第二个条目的值?

宗政燕七
2023-03-14
问题内容

我在Oracle中有一张表叫做引号,有两列: datevalue

我想比较表中最后一个条目和第二个最后一个条目的值。

在此示例中,我想一行获取 13.1和11.1的 日期, 以及 每个日期的值之间的差(10-5 = 5)。

报价表:

日期-值

2010年1月13日-10

11.1.2010-5

2010年1月10日-2

2010年10月8日-1

编辑:

我想拥有一个更复杂的表,其中包含更多列 companyId 。我需要为每个公司获取物品。表将如下所示:

报价表:

日期-值-公司编号

2010年1月13日-10-10

11.1.2010-5-10

10.1.2010-2-10

2010年10月8日-1-10

2010年1月12日-7日至20日

10.1.2010-3-20

9.1.2010-2-20

2010年10月8日-2-20

在这种情况下,我想获得两行( 但总的来说,与公司数量一样多
)-每家公司都将返回一行,并返回日期和最新值与第二新值之间的差额。因此,在这种情况下,它将返回:

companyId 10 13.1和11.1和5以及另一行,如下所示:

companyId 20 12.1和10.1和4(7-3 = 4)。


问题答案:
SELECT  *, value - nextvalue AS diff
FROM    (
        SELECT  m.*, LEAD(value) OVER (ORDER BY date DESC) AS nextvalue
        FROM    mytable m
        ORDER BY
                date DESC
        )
WHERE   rownum = 1

更新:

要按公司选择结果:

SELECT  value - nextvalue AS diff
FROM    (
        SELECT  m.*,
                LEAD(value) OVER (PARTITION BY companyId ORDER BY date DESC) AS nextvalue,
                ROW_NUMBER() OVER (PARTITION BY companyId ORDER BY date DESC) AS rn
        FROM    mytable m
        )
WHERE   rn = 1


 类似资料:
  • 我在Java有两个列表,例如,我希望这些列表被比较为相等,因为list1等于list2的START。 我得到了没有流的代码: 是否可以使用Java流来实现这一点?如果是,怎么做?我正在努力学习如何使用流,这真的很难。提前谢谢你。

  • 我只是在学习powershell,但遇到了这个让我难堪的错误。目标是获取csv文件并确定文件中有多少组。每个组下都有多个条目。最终结果将是根据组将文件拆分为不同的数组/字典/whathaveyou(我在3小时前开始使用powershell…),保持Taxonid完整,然后将它们导出到单独的文件。但现在,我只是处于比较阶段。 我的练习数据看起来像 真实的数据是这样的: 为此,我尝试将一行中的组与下一

  • 在一个JUnit4测试中,我有一个方法,它返回一个对象,我要将它与引用列表进行比较。到目前为止,我发现的最佳解决方案是使用和,如下所示: 对于只返回很少值的测试来说,这是很好的。但是如果一个测试返回更多的值,这肯定不是最好的方法。 我还尝试了下面的代码。要编译代码,需要在之前向下转换到: 对比失败了,不明白为什么: java.lang.AssertionError:预期:(包含<[<0.2>的<1

  • 问题内容: 如何比较javascript中的2个函数?我不是在谈论内部参考。说 可以比较和吗? 问题答案:

  • 问题内容: 我必须比较两个对象(不是)。比较它们的规范方法是什么? 我可以想到: 该运营商只比较基准,因此这将仅适用于较低的整数值的工作。但是也许自动装箱开始了…? 这看起来像一个昂贵的操作。是否以此方式计算出哈希码? 有点冗长… 编辑: 谢谢您的答复。尽管我现在知道该怎么办,但事实已分布在所有现有答案(甚至是已删除的答案)上,我也不知道该接受哪个答案。因此,我将接受最佳答案,即所有三种比较可能性