Улей: случайным образом выбирает выборки разного размера из группы по

#random #group-by #hive

#Случайный #групповое #улей

Вопрос:

Возможно ли случайным образом выбирать разные размеры выборок из группы по в улье? Например, у меня есть такая таблица

 |-----------------|----------------|
|     ID          |     Value      |
|-----------------|----------------|
|    IKJ12        |    5           |
|-----------------|----------------|
|    IKJ12        |    9           |
|-----------------|----------------|
|    IKJ12        |    10          |
|-----------------|----------------|
|    IKJ09        |    7           |
|-----------------|----------------|
|    IKJ09        |    14          |
|-----------------|----------------|
  

Я хотел бы случайным образом выбрать две выборки из ID = IKJ12 и одну выборку ID = IKJ09 . Одна из возможностей выглядит так.

 |-----------------|----------------|
|     ID          |     Value      |
|-----------------|----------------|
|    IKJ12        |    5           |
|-----------------|----------------|
|    IKJ12        |    10          |
|-----------------|----------------|
|    IKJ09        |    14          |
|-----------------|----------------|
  

Ответ №1:

не могли бы вы попробовать? Я не нашел, чтобы проверить это, но я думаю, вы получите представление об этом.
номер строки используется для присвоения уникального номера строки для каждого идентификатора в разделе.
сумма используется для определения количества элементов в разделе.

 select id,value
from 
(select id,value,
row_number() over(partition by id order by id) rn
sum(1) over(partition by id order by id) cnt
from table 
)
where rs.rn<= floor(rand*100)%cnt 1