下圖為一張訂單表(order1),現希望查找出至少連續3天下單的用戶。

第一步:將訂單表按UserId分組根據日期Date排序。

注:窗口函數row_number()mysql8.0及以上版本可用。

第二步:用日期Date減去對應的排序號Num,若日期是連續的,則相減的結果Datedif相等。


第三步:按UserId,Datedif分組計數,得到各用戶的連續下單天數。


第四步:篩選連續下單天數≥3的用戶

第三步和第四步也可合並為一步,即:

得到至少連續3天下單的用戶如下:

第一步也可使用自定義變量的方式實現:

因此最終代碼也可表示為:
