您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在给定的表中找到每个主题的前三名

如何在给定的表中找到每个主题的前三名

您可以使用变量来执行此操作。

select t.*
from (select t.*,
             (@rn := if(@s = subject, @rn + 1,
                        if(@s := subject, 1, 1)
                       )
             ) as rn
      from t cross join
           (select @rn := 0, @s := '') params
      order by subject, marks desc
     ) t 
where rn <= 3
order by t.subject, t.rn;
其他 2022/1/1 18:37:47 有460人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶