[英]how to do lag operation in mysql
伙計們我想在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;
在編寫查詢之前。
, (select @prev:=NULL) vars
那么select子句中這些語句的順序很重要:
, @prev AS previous_Operation
, @prev := Operation
第一個只顯示變量值,第二個將當前行的值分配給變量。
擁有ORDER BY
子句也很重要,因為輸出不是確定性的。
所有這些只是出於審美原因而被放入子查詢中,......來過濾掉這個
, @prev := Operation
柱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.