У меня есть простая таблица с 3 столбцами, depName, empNo, salary
, когда я запускаю следующий запрос окна
val ws = Window.partitionBy("depName").orderBy("empNo")
ds.withColumn("avg", avg("salary") over ws).show()
, он выводит следующий результат, он показывает, что оклад avg в пределах depName отпервый ряд к текущему.Как такое могло произойти?Я думал, что все avg с одним deptName должны быть одинаковыми.
Если я не использую orderBy("empNo")
для создания ws, то все avg с одним deptName одинаковы.
Я бы спросил, как это происходит, спасибо.
+---------+-----+------+-----------------+
| depName|empNo|salary| avg|
+---------+-----+------+-----------------+
| develop| 7| 4200| 4200.0|
| develop| 8| 6000| 5100.0|
| develop| 9| 4500| 4900.0|
| develop| 10| 5200| 4975.0|
| develop| 11| 5200| 5020.0|
| sales| 1| 5000| 5000.0|
| sales| 3| 4800| 4900.0|
| sales| 4| 4800|4866.666666666667|
|personnel| 2| 3900| 3900.0|
|personnel| 5| 3500| 3700.0|
+---------+-----+------+-----------------+