PS:本文内容来自夏弈的问题记录。
PPS:事实上,我也觉得这个解决方案太过复杂,应该会有更加方便的方案,比如如果我是在SQL Server中处理这个问题,那就会有一个ROW_NUMBER函数,直接对每个分区/分组中的记录进行编号,然后取分组中的前n条就好了,我还没有尝试,但听说这个函数hive也是支持的。只不过我期望这个问题是在MySQL下解决,而且目前暂时没有充足的时间研究,所以先暂时放出这个”大力砖飞“的方案,等到后面有时间了再研究更简洁的解法。
PPPS:原来ROW_NUMBER() 函数是“窗口函数”的一种,MySQL自8.0之后也支持了窗口函数,但之前的版本就无法使用了,只能使用临时变量生成编号,也就是下面的我的做法。不过,Hive中倒是支持窗口函数的使用的。点击此链接查看我的窗口函数笔记:https://www.cnblogs.com/BlackString/p/13371367.html