sum работают? Я честно говоря немного не понимаю механики, почему он именно так сосчитал все
Сперва отработал групп бай и связанный с ним агрегируюшая функция sum(hours). На полученный датасет уже накладывается оконная функция. То есть групп бай отдает датасет состоящий из полей: employee_name, employee_branch, total_for_person. В оконной функции ты используешь h.hours, но после групп бай данная колонка пропадает из области видимости скл, поэтому он прокидывает ошибку. В моем случае мы в оконку отдаем 4 поля: employee_name, employee_branch, total_for_person, sum(hours). Поэтому оконка отрабатывает, ТК она видит с каким полем ей работать. Мб сложно объяснил, но думаю, что данный скрипт подходит для собесов, ТК показывает понимает ли кандидат разницу между групп бай и оконкой) В общем поиграйся с мелкий датасетом, чтобы понять о чем я тут написал
Ну так, немного вроде понял, поэксперементирую еще с разными запросами, благодарю за такое объяснение) А я же могу получается теперь 5-м селектом использовать (оконная функция 4-я) / (сумму часов на человека), чтобы можно было Долю его часов относительно бранча посчитать?
Вы когда в group by поместили emp, branch и в селект поместили sum(h.hours) уже посчитали сколько сотрудник отработал времени в каждом отдельном филиале
Обсуждают сегодня