Оконные функции

Цель

Получить практические навыки применения оконные функций.

Порядок выполнения

1. Используя БД employee.fdb, напишите заданный запрос, возвращающий указанные результат

2. Вывести список сотрудников с их рангом по зарплате внутри каждого отдела

EMP_NOFIRST_NAMELAST_NAMEDEPT_NOSALARYSALARY_RANK
105Oliver H.Bender02128501
12TerriLee0537932
85Mary S.MacDonald100111262.51
127MichaelYanowski100440002
61LukeLeung110688051
34JanetBaldwin11061637.812
118TakashiYamamoto11574800001
110YukiIchida11560000002
37WillieStansbury12039224.061

3. Вывести накопленную сумму зарплат для каждого сотрудника в отделе по дате приема на работу

EMP_NOFIRST_NAMELAST_NAMEDEPT_NOSALARYCUMULATIVE_SALARY
12TerriLee05379353793
105Oliver H.Bender0212850266643
85Mary S.MacDonald100111262.5111262.5
127MichaelYanowski10044000155262.5
34JanetBaldwin11061637.8161637.81
61LukeLeung11068805130442.81
110YukiIchida11560000006000000
118TakashiYamamoto115748000013480000

4. Вычислить скользящее среднее зарплаты для каждого сотрудника, используя текущую строку и две предыдущие по дате приема на работу

EMP_NOFIRST_NAMELAST_NAMEHIRE_DATESALARYMOVING_AVG
2RobertNelson1988-12-28T00:00105900105900
4BruceYoung1988-12-28T00:0097500101700
5KimLambert1989-02-06T00:00102750102050
8LeslieJohnson1989-04-05T00:006463588295
9PhilForest1989-04-17T00:007506080815
20ChrisPapadopoulos1990-01-01T00:008965576450
11K. J.Weston1990-01-17T00:0086292.9483669.31
12TerriLee1990-05-01T00:005379376580.31
14StewartHall1990-06-04T00:0069482.6369856.19

5. Вывести процент, который составляет зарплата каждого сотрудника от общей суммы зарплат в его отделе

EMP_NOFIRST_NAMELAST_NAMEDEPT_NOSALARYSALARY_PERCENT
12TerriLee05379320.17416
105Oliver H.Bender021285079.82583
85Mary S.MacDonald100111262.571.66089
127MichaelYanowski1004400028.3391
34JanetBaldwin11061637.8147.25274
61LukeLeung1106880552.74725
110YukiIchida115600000044.51038
118TakashiYamamoto115748000055.48961
28AnnBennet1202293523.94557

6. Вывести разницу между зарплатой сотрудника и средней зарплатой в его отделе.

EMP_NOFIRST_NAMELAST_NAMEDEPT_NOSALARYSALARY_DIFF
12TerriLee053793-79528.5
105Oliver H.Bender021285079528.5
85Mary S.MacDonald100111262.533631.25
127MichaelYanowski10044000-33631.25
34JanetBaldwin11061637.81-3583.59
61LukeLeung110688053583.6
110YukiIchida1156000000-740000
118TakashiYamamoto1157480000740000
28AnnBennet12022935-8991.56
36RogerReeves12033620.631694.07

7. Вывести порядковый номер строки для каждого сотрудника в отделе, отсортированного по фамилии

EMP_NOFIRST_NAMELAST_NAMEDEPT_NOROW_NUM
105Oliver H.Bender01
12TerriLee02
85Mary S.MacDonald1001
127MichaelYanowski1002
34JanetBaldwin1101
61LukeLeung1102
110YukiIchida1151
118TakashiYamamoto1152

8. Вывести зарплату самого высокооплачиваемого сотрудника в отделе для каждого сотрудника

EMP_NOFIRST_NAMELAST_NAMEDEPT_NOSALARYMAX_SALARY
12TerriLee053793212850
105Oliver H.Bender0212850212850
85Mary S.MacDonald100111262.5111262.5
127MichaelYanowski10044000111262.5
34JanetBaldwin11061637.8168805
61LukeLeung1106880568805
110YukiIchida11560000007480000
118TakashiYamamoto11574800007480000
28AnnBennet1202293539224.06

9. Вывести разницу между зарплатой сотрудника и максимальной зарплатой в его отделе

EMP_NOFIRST_NAMELAST_NAMEDEPT_NOSALARYDIFFFROMMAX
12TerriLee053793159057
105Oliver H.Bender02128500
85Mary S.MacDonald100111262.50
127MichaelYanowski1004400067262.5
34JanetBaldwin11061637.817167.19
61LukeLeung110688050
110YukiIchida11560000001480000
118TakashiYamamoto11574800000
28AnnBennet1202293516289.06

10. Вывести ранг сотрудников по стажу

EMP_NOFIRST_NAMELAST_NAMEHIRE_DATEEXPERIENCE_RANK
4BruceYoung1988-12-28T00:001
2RobertNelson1988-12-28T00:001
5KimLambert1989-02-06T00:003
8LeslieJohnson1989-04-05T00:004
9PhilForest1989-04-17T00:005
20ChrisPapadopoulos1990-01-01T00:006
11K. J.Weston1990-01-17T00:007
12TerriLee1990-05-01T00:008
14StewartHall1990-06-04T00:009

11. Вывести накопленную сумму продаж для каждого сотрудника, отсортированную по дате продажи

EMP_NOORDER_DATETOTAL_VALUECUMULATIVE_SALES
111991-03-04T00:0050005000
111992-10-15T00:00200077000
111992-10-15T00:007000077000
111993-02-03T00:00600.577600.5
111993-04-27T00:002000097600.5
111993-11-11T00:0027000124600.5
111993-12-27T00:0014850139450.5
111993-12-31T00:000139450.5
611992-07-26T00:0029852985
611993-08-01T00:00900011985
611993-10-10T00:00490.6912475.69
611993-12-12T00:001600028475.69
611994-02-13T00:00900037475.69
721993-03-22T00:0047.547.5
721993-08-09T00:00399960.5960008
721993-08-09T00:00560000960008
1181993-08-20T00:0018000.418000.4
1181993-10-30T00:0021018210.4
1181993-12-12T00:00598024190.4
1211993-10-27T00:002693122693
1211993-10-27T00:00120000122693
1271993-08-16T00:0000
1271993-09-09T00:0012582.1212582.12
1271993-12-12T00:006000072582.12
1271994-01-04T00:003999.9976582.11
1271994-01-17T00:003399.1579981.26
1271994-02-07T00:00422210.97502192.23
1341993-08-27T00:001000010000
1341993-09-20T00:00100.0210100.02
1341993-12-12T00:00450000.49460100.51
1341993-12-18T00:00999.98462600.49
1341993-12-18T00:001500462600.49
1411994-01-06T00:001980.721980.72

12*. Вывести ранг сотрудников по общей сумме продаж

EMP_NOTOTAL_SALESSALES_RANK
729600081
127502192.232
134462600.493
11139450.54
1211226935
6137475.696
11824190.47
1411980.728

13*. Вычислить скользящее среднее продаж для каждого сотрудника за последний год

EMP_NOORDER_DATETOTAL_VALUEMOVING_AVG
111991-03-04T00:0050005000
111992-10-15T00:00200036000
111992-10-15T00:007000036000
111993-02-03T00:00600.524200.16
111993-04-27T00:002000023150.12
111993-11-11T00:002700015866.83
111993-12-27T00:001485015612.62
111993-12-31T00:00012490.1
611992-07-26T00:0029852985
611993-08-01T00:0090009000
611993-10-10T00:00490.694745.34
611993-12-12T00:00160008496.89
611994-02-13T00:0090008622.67
721993-03-22T00:0047.547.5
721993-08-09T00:00399960.5320002.66
721993-08-09T00:00560000320002.66
1181993-08-20T00:0018000.418000.4
1181993-10-30T00:002109105.2
1181993-12-12T00:0059808063.46
1211993-10-27T00:00269361346.5
1211993-10-27T00:0012000061346.5
1271993-08-16T00:0000
1271993-09-09T00:0012582.126291.06
1271993-12-12T00:006000024194.04
1271994-01-04T00:003999.9919145.52
1271994-01-17T00:003399.1515996.25
1271994-02-07T00:00422210.9783698.7
1341993-08-27T00:001000010000
1341993-09-20T00:00100.025050.01
1341993-12-12T00:00450000.49153366.83
1341993-12-18T00:00999.9892520.09
1341993-12-18T00:00150092520.09
1411994-01-06T00:001980.721980.72

Полезная информация

  1. Для выполнения лабораторной работы использовать материалы лекций 20 учебника.