hive 中如何使用hql 整除一个数并且余数均分到前面的元素去

hive 中如何使用hql 整除一个数并且余数均分到前面的元素去

例如:
100/3 =
34 33 33

你这个题目是想表达一个均匀分组的场景吗(当记录数不能整除时也可以均匀分组,假设余数为x,前x个分组每个多分配1个)?
如果是要对数据进行均匀分组,可以使用hive自带的ntile函数,使用示例如下

select x,ntile(3) over() as group_id from
(
  select explode(array(1,2,3,4,5,6,7,8,9,10)) as x
) t;

上面查询sql结果为

+-----+-----------+--+
|  x  | group_id  |
+-----+-----------+--+
| 10  | 1         |
| 9   | 1         |
| 8   | 1         |
| 7   | 1         |
| 6   | 2         |
| 5   | 2         |
| 4   | 2         |
| 3   | 3         |
| 2   | 3         |
| 1   | 3         |
+-----+-----------+--+