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

每组生产 n 行

每组生产 n 行

对于任何支持解析函数\窗口函数数据库,这相对容易

select *
  from (select type, 
               variety, 
               price,
               rank() over ([partition by something]
                            order by price) rnk
          from fruits) rank_subquery
 where rnk <= 3

如果省略[partition by something],您将获得前三行。如果你想要每个 的前三名type,你会partition by type在你的rank()函数中。

根据您想要如何处理关系,您可能想要使用dense_rank()row_number()而不是rank()。如果两行并列,使用rank,则下一行的 arnk为 3,而使用 时的 arnk为 2 dense_rank在这两种情况下,两个并列行的 arnk为 1。 row_number将任意赋予两个并列行中的一个 arnk为 1,另一个 arnk为 2。

其他 2022/1/1 18:53:28 有442人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶