问题标签 [analytic-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
397 浏览

oracle - 在 Oracle 中使用 Lead 进行分区

我被困在使用分区实现 LEAD/LAG 的问题上。

以下是示例和预期结果

我需要返回这样的值:

嵌入的逻辑是:

对于每条记录,需要获取相反方向的和现有TrdTime > 其他记录TrdTime。例如:对于键 1237,Direction 是 S,TrdTime 是 7/15/2013 6:18:00 PM。此记录返回以下记录:1240 和 1241 都具有对侧“B”和现有记录 TrdTime > 这两个记录。但是选择了 1241 的 TrdTime,因为它是按最近和最高的 TrdTime 排序的。

我怎样才能实现这个功能。

我正在考虑使用 LEAD 函数和分区来完成它。

我不能使用游标,因为表没有索引并且有超过 5 百万条记录。我不想自己加入,因为这非常耗时。

请有任何建议。

0 投票
1 回答
3771 浏览

java - 具有 Oracle 分析窗口功能的休眠标准

试图覆盖 Oracle10gDialect 并添加 over 和 partition 函数。我在hibernate.org上阅读了有关如何覆盖方言的信息。我正在使用 Hibernate 4.1.7.Final 并且无法升级。我按照指定的方式实现了它,但是我收到了这个错误。

这是我建立的课程:

这是我在 hbm.xml 文件中的条目:

我面临的挑战是阻止休眠添加 this_。到分区。在我链接到的休眠论坛线程中,最后一个条目是一个有同样问题的人。我不确定 Hibernate Criteria 是否可以做到这一点。

谢谢你的帮助。

更新: 我找到了我添加的答案

到 registerFunctions 方法中的我的 Oracle10gDialectExtended 类,它现在按预期工作。

0 投票
1 回答
87 浏览

mysql - MySQL 获取 ORDER BY 编号错误的行位置

我有以下 mySQL 查询,我想给在计算字段上排序的行以及相应的行位置。我已使用此处的 OMG Ponies 代码作为模板,但返回的行编号不正确(它们在没有排序的情况下按键(gemid)顺序编号)。我知道这与 GROUP BY 上的 JOIN 有关,但我知道如何解决它。提前致谢。

输出应该看起来像:

相反,它又回来了:

0 投票
1 回答
61 浏览

sql - 在同一查询中获取先前的测试分数

我正在尝试在同一查询中获取学生的先前分数和先前的考试日期。我当前的查询工作正常,直到先前的分数正好落在 28 天的差异上。问题是当分数落在 29,30 或 31 天时。这是我当前的查询:

如何使这变得更加动态,以便无论何时参加考试/测试,我都能获得先前的分数。

0 投票
3 回答
75 浏览

sql - 查找最新记录条目

我有这样的数据。

我需要获取给定记者的最新记录条目。即我需要为记者进行分组,并且需要获取组合创建字段的最新记录。

我的输出必须是这样的。

0 投票
3 回答
883 浏览

sql - FIRST_VALUE 函数未按预期工作

我以为我明白它是如何工作的,但现在我很困惑。

我有一个数据集:

三条记录,分别是 2008 年 1 月、2009 年和 2010 年。现在我想用最新的非空值创建一个新列“value2”。基本上我想要一个具有 3 个 34 秒的 value2 列。我写的:

但是,我得到了:

最后一个值仍然是 null 而不是 34。这里出了什么问题?

0 投票
1 回答
2991 浏览

sql - 在 MAX() OVER PARTITION 中包含 NULL

我有一个 Oracle 查询,我想在合并 NULL 的同时通过 PARTITION 返回一个 MAX()。

例如,如果原始数据是:

使用以下查询,它返回以下内容:

是否可以让它表现得好像 NULL 是一个 MAX() 值,所以它会返回以下内容?

0 投票
1 回答
213 浏览

sql - 在分组结果中选择第一条和最后一条记录 - Oracle 11g

假设我在 Oracle 11g 表中有以下信息:

我想编写一个返回以下内容的查询:

也就是说,按Production order分组的Qty列的总和,以及每个Production order的第一个和最后一个记录的日期/时间。我想出了一个产生这个结果的查询:

这意味着FirstLast列显示整个表的总体第一个和最后一个日期/时间。请注意,这是一个虚拟表。抱歉,我现在可以编写我提出的实际查询,因为工作政策不允许我分享它。此外,我尝试使用诸如rank()row_number()之类的窗口函数,但我的用户没有足够的权限这样做。任何帮助或提示将不胜感激。

0 投票
1 回答
214 浏览

oracle - 如何根据(n-1)级数据最好地计算n级聚合数据(Oracle)

这个答案中(所有可执行的简化和记录的示例代码+有用的评论)

我在那里做了一种技巧来计算下表的最后两行:

有人知道执行此类操作的更好(性能、代码量、可理解性)方法吗?

(比起使用应用的“提供联合空行,在 n+1 聚合级别-trick上填充 case 和 product()-over() ” ,我们称之为punurofiwicapoonalt -trick(naah ... 仍然很复杂).. . 听起来像 - 是的 - 让我们称之为色情-trick ;O) (......好吧......别名capoon -trick 如果你不喜欢它))

0 投票
2 回答
2060 浏览

sql - 如何在 Oracle SQL 中使用案例或解码作为分析窗口函数的一部分

我想做这样的事情:

其中第二列仅返回星期一的总超时时间的总和。这在 Oracle SQL 中是否可行,正确的语法是什么?