相关疑难解决方法(0)

获取每组最高/最小<whatever>的记录

怎么做?

这个问题的前标题是" 在带有子查询的复杂查询中使用等级(@Rank:= @Rank + 1) - 它会起作用吗? "因为我正在寻找使用等级的解决方案,但现在我看到Bill发布的解决方案是好多了.

原始问题:

我正在尝试编写一个查询,该查询将根据定义的顺序从每个组获取最后一条记录:

SET @Rank=0;

select s.*
from (select GroupId, max(Rank) AS MaxRank
      from (select GroupId, @Rank := @Rank + 1 AS Rank 
            from Table
            order by OrderField
            ) as t
      group by GroupId) as t 
  join (
      select *, @Rank := @Rank + 1 AS Rank
      from Table
      order by OrderField
      ) as s 
  on t.GroupId = s.GroupId and t.MaxRank = s.Rank
order by OrderField
Run Code Online (Sandbox Code Playgroud)

表达式@Rank := @Rank + 1 …

mysql subquery rank greatest-n-per-group

84
推荐指数
1
解决办法
3万
查看次数

标签 统计

greatest-n-per-group ×1

mysql ×1

rank ×1

subquery ×1