• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
夏弈
沿着河边的白沙滩行走,希望能找到桃花源。
博客园    首页    新随笔    联系   管理    订阅  订阅
【夏弈的问题记录】(SQL)取出一个表的每个分组中的前n条记录

PS:本文内容来自夏弈的问题记录。

PPS:事实上,我也觉得这个解决方案太过复杂,应该会有更加方便的方案,比如如果我是在SQL Server中处理这个问题,那就会有一个ROW_NUMBER函数,直接对每个分区/分组中的记录进行编号,然后取分组中的前n条就好了,我还没有尝试,但听说这个函数hive也是支持的。只不过我期望这个问题是在MySQL下解决,而且目前暂时没有充足的时间研究,所以先暂时放出这个”大力砖飞“的方案,等到后面有时间了再研究更简洁的解法。

PPPS:原来ROW_NUMBER() 函数是“窗口函数”的一种,MySQL自8.0之后也支持了窗口函数,但之前的版本就无法使用了,只能使用临时变量生成编号,也就是下面的我的做法。不过,Hive中倒是支持窗口函数的使用的。点击此链接查看我的窗口函数笔记:https://www.cnblogs.com/BlackString/p/13371367.html

 

posted on 2020-07-20 17:27  夏弈  阅读(183)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3