擅长:python、mysql、java
<p>这里<code>t5</code>是您的表,<code>u</code>是包含用户的列,<code>r</code>是包含点的列。。。我尝试了用户值'u4'-尝试你的。。。你知道吗</p>
<pre><code>select u,r from (
select *, case when l2 = 'u4' or r1 > 0 or r < max(ur) over () then 1 else 0 end r2 from (
select *, case when l1 = 'u4' or r0 > 0 then 2 else 0 end r1, lag(l1) over (order by r) l2 from (
select *
, row_number() over (order by r)
, lag(u) over (order by r) l1
, case when u = 'u4' then r else 0 end ur
, count(*) over ()
, case when u = 'u4' then 3 else 0 end r0
from t5
order by r desc
) prim
order by r desc
) sec
) ter
where r2 > 0
order by r desc
limit 5
</code></pre>