伙计们,我想在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
在这里,您可以初始化变量。这与SET @prev:=NULL;在编写查询之前编写内容相同。
SET @prev:=NULL;
, (select @prev:=NULL) vars
那么这些语句在select子句中的顺序很重要:
, @prev AS previous_Operation , @prev := Operation
第一个仅显示变量值,第二个将当前行的值分配给变量。
拥有一个ORDER BY子句也很重要,因为否则输出是不确定的。
ORDER BY
出于审美原因,所有这些都被放入子查询中,以筛选出该结果。
, @prev := Operation
柱子。