Улей процентильной группы по двум переменным - PullRequest
0 голосов
/ 24 августа 2018

У меня есть таблица Hive, в которой я хочу найти 10-й процентиль, медиану и 90-й процентиль значения в зависимости от местоположения / дня недели.Макет таблицы ниже.Как я могу написать запрос, чтобы столбцы выходной таблицы были: местоположение, день недели, 10-й процентиль, медиана и 90-й процентиль MyValue?(Предположим, что фактическая таблица имеет много разных местоположений и несколько записей для каждой комбинации местоположения / дня недели)

Я пробовал:

create table myschema.my_output_table as
select location, weekday,
percentile(MyValue,0.1) over location,weekday as Weekday10pctile
from myschema.my_input_table

Образцы данных:

Location      Weekday       MyValue
Location_A    Monday        2.844958857
Location_A    Monday        1.22455235
Location_A    Monday        2.415189236
Location_A    Monday        2.162431558
Location_A    Tuesday       2.200264375
Location_A    Tuesday       1.218341845
Location_A    Tuesday       1.668882003
Location_A    Tuesday       0.077343061
Location_A    Wednesday     2.977162672
Location_A    Wednesday     2.059018125
Location_A    Wednesday     2.309147998
Location_A    Wednesday     1.241566476

1 Ответ

0 голосов
/ 24 августа 2018

Используйте функцию percentile_approx, так как значения в столбце DOUBLE.Обратите внимание, что возвращаемые значения могут не входить в набор данных.

select location, weekday,
percentile(MyValue,0.1) over w as Weekday10pctile,
percentile(MyValue,0.9) over w as Weekday90pctile
from myschema.my_input_table
window w as (partition by location,weekday)

percentile_approx описание из документации

процентиль_апрокс (столбец DOUBLE, p[, B])

Возвращает приблизительный p-й процентиль числового столбца (включая типы с плавающей запятой) в группе.Параметр B контролирует точность аппроксимации за счет памяти.Более высокие значения дают лучшие приближения, и значение по умолчанию составляет 10000.Когда число различных значений в столбце меньше B, это дает точное значение процентиля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...