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

如何在mysql中执行滞后操作

东门城
2023-03-14
问题内容

伙计们,我想在mysql中使用解析函数滞后。在Oracle中受支持,但在Mysql中无法做到。那么有人可以帮助我如何在Mysql中执行滞后运算吗?例如

UID                        Operation
 1                         Logged-in
 2                         View content
 3                         Review

我想使用滞后函数,以便我的输出如下

UID                        Operation              Lagoperation
 1                         Logged-in                
 2                         View content           Logged-in
 3                         Review                 View content

Mysql支持滞后功能吗???


问题答案:

您可以使用用户变量来模拟它:

select uid, operation, previous_operation from (
select
y.*
, @prev AS previous_Operation
, @prev := Operation
from
your_table y
, (select @prev:=NULL) vars
order by uid
) subquery_alias
  • 看到它在工作sqlfiddle直播

在这里,您可以初始化变量。这与SET @prev:=NULL;在编写查询之前编写内容相同。

, (select @prev:=NULL) vars

那么这些语句在select子句中的顺序很重要:

, @prev AS previous_Operation
, @prev := Operation

第一个仅显示变量值,第二个将当前行的值分配给变量。

拥有一个ORDER BY子句也很重要,因为否则输出是不确定的。

出于审美原因,所有这些都被放入子查询中,以筛选出该结果。

, @prev := Operation

柱子。



 类似资料:
  • 问题内容: 请考虑下表: 该列会自动增加,但包含空白。该列为数字。 我想通过设置相对于上述两行的方式来查看随时间的增长。那是针对行,我要相对于行(334)设置行(546 )的。因此,要为行计算的值是546/334 = 1.63473。 这是我想要实现的结果: 如何在MySQL中执行此类滞后? 请注意,该列包含空格,因此仅在与同一表上的连接将不起作用。 问题答案: 这是一个返回MySQL所需内容的解

  • 本文向大家介绍在MySQL中执行NAND / NOR操作,包括了在MySQL中执行NAND / NOR操作的使用技巧和注意事项,需要的朋友参考一下 首先让我们看看如何在MySQL中执行NAND / NOR操作。这个概念如下- 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是执行NAND / NOR操作的查询- 这将产生以

  • Vext.x核心手册建议使用< code>executeBlocking()执行阻塞代码,以防止事件循环被阻塞。尽管如此,它还指出: 阻止代码 [] 应阻止合理的时间(即不超过几秒钟)。长阻塞操作...被排除在外。当阻止操作持续超过10秒时,将在控制台上打印一条消息[...]。长阻塞操作应使用由应用程序管理的专用线程,该线程可以使用事件总线或 runOnContext 与顶点进行交互 所以我不能在

  • 问题内容: 我被错误卡住了,这里的第42行是,请帮我解决这个问题,我在这个问题上待了几个小时。 这是我的代码: 问题答案: 一个对象只能有一个active对象,因此在执行时,第一个ResultSet()被关闭。 创建两个对象,一个用于,另一个用于。 引用以下内容的javadoc : 默认情况下,每个对象只能同时打开一个对象。因此,如果一个对象的读取与另一对象的读取交错,则每个对象必须已由不同的对象

  • 问题内容: 所以我有一张桌子,如下所示: 然后,我需要对它们进行分组,排序和排序以给出: 现在,我知道您可以使用temp变量进行排名,例如此处,但是如何对分组集进行排名呢?感谢您的见解! 问题答案: 这以非常简单的方式起作用: 初始查询按第一,第二顺序排序。 并初始化为 用于测试是否输入下一组。如果的先前值(存储在中)不等于当前值(存储在中),则将其清零。否则增加。 分配了新值,并将在下一行的第3

  • 问题内容: 我正在此SQL函数中编写SQL Server 2012 但在第一行 ** LAG(Data)我有一个错误。所以我不知道如何在SQL Server 2008中使用LAG()函数。 有人可以帮我吗? 问题答案: 遗憾的是,SQL Server 2012之前的版本不可用。您必须使用自连接来代替: