可以考虑使用 window function 替代
SQL 比较复杂

尝试理解了一下里面用户变量的用法,可以参考一下以下的方法来改写
@created_at 应该是用来计算每个 created_at 和上一行的 created_at 的差,这个的用法应该可以借助
LAG(),写成 created_at - lag(created_at) over ()
@concat_user 看起来是想拿来判断这一行是不是这个 concat_user 的第一行数据,这个应该可以借助
ROW_NUMBER(),写成类似 row_number() over (partition by date, disti…