#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