если вы хотите, чтобы одинаковое среднее значение (кол-во) для всех строк, затем удалить order by sellerid
в предложении over, тогда у вас будет 19.545454545454547 значение для всех строк.
Запрос на получение одинакового среднего (qty) для всех строк:
hive> select salesid, sellerid, qty, avg(qty) over () as avg_qty from winsales order by sellerid,salesid;
Если включить order by sellerid
в по пункту тогда вы получаете совокупное среднее рассчитывается для каждого sellerid.то есть для
sellerid 1 you are having 2 records total 2 records with qty as 10,30 so avg would be
(10+30)/2.
sellerid 2 you are having 2 records total 4 records with qty as 20,20 so avg would be
(10+30+20+20)/4 = 20.0
sellerid 3 you are having 5 records total 9 records with qty as so 10,10,15,20,30 avg would be
(10+30+20+20+10+10+15+20+30)/9 = 18.333
sellerid 4 avg is 19.545454545454547
, когда мы включаем предложение over, тогда это ожидаемое поведение от улья.