Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаврентев Освоение СQЛ 2009

.pdf
Скачиваний:
63
Добавлен:
16.08.2013
Размер:
2.47 Mб
Скачать

91

DEMO@ORCL>SELECT * FROM sales_order;

ORDER_ID

 

CUSTOMER_ID

TOTAL

ORDER_DATE

SHIP_DATE

 

---------- -----------

----------- -----------

----------

610 07-jan-1991

 

101 08-jan-1991

101,4

611 11-jan-1991

 

102 11-jan-1991

45

612 15-jan-1991

 

104 20-jan-1991

5860

601 16-nov-1990

 

106 30-nov-1990

60,8

602 05-jun-1990

 

102 20-jun-1990

56

600 01-may-1990

103 29-may-1990

42

604 15-jun-1990

 

106 30-jun-1990

642

605 14-jul-1990

 

106 30-jul-1990

8374

606 14-jul-1990

 

100 30-jul-1990

3,4

609 01-aug-1990

 

100 15-aug-1990

102,5

607 18-jul-1990

 

104 18-jul-1990

5,6

608 25-jul-1990

 

104 25-jul-1990

35,2

603 05-jun-1990

 

102 05-jun-1990

224

620 12-mar-1991

 

100 12-mar-1991

4450

613 01-feb-1991

 

108 01-feb-1991

6400

614 01-feb-1991

 

102 05-feb-1991

23940

616 03-feb-1991

 

103 10-feb-1991

764

619 22-feb-1991

 

104 04-mar-1991

1260

617 05-feb-1991

 

105 03-mar-1991

46370

615 01-feb-1991

 

107 06-feb-1991

710

618 15-feb-1991

 

102 06-mar-1991

3083

621 15-mar-1991

 

100 01-apr-1991

730

509 04-jun-1989

 

226 10-jun-1989

1174

523 13-feb-1990

 

226 13-feb-1990

1165

549 27-dec-1990

 

226 14-jan-1991

1620

507 26-may-1989

228 27-may-1989

886

516 30-sep-1989

 

228 03-oct-1989

1815

553 02-feb-1991

 

228 13-feb-1991

4400

526 04-mar-1990

 

221 07-mar-1990

7700

543 04-sep-1990

 

221 07-sep-1990

8400

555 04-mar-1991

 

221 07-mar-1991

8540

559 16-nov-1990

 

222 23-apr-1991

387,2

528 24-mar-1990

 

224 24-mar-1990

3770

531 31-mar-1990

 

224 02-apr-1990

1400

558 31-mar-1991

 

224 02-apr-1991

1700

525 28-feb-1990

 

225 03-mar-1990

377

552 02-feb-1991

 

223 07-feb-1991

555,8

556 10-mar-1991

 

223 12-mar-1991

85

560 25-apr-1991

 

223 25-apr-1991

72

565 01-jun-1991

 

227 03-jun-1991

4900

574 10-oct-1991

 

201 12-oct-1991

1685

576 13-oct-1991

 

201 18-oct-1991

2058,9

503 25-mar-1989

 

201 06-apr-1989

1876

518 20-oct-1989

 

201 05-nov-1989

2932,5

517 23-oct-1989

 

201 07-nov-1989

784

544 11-sep-1990

 

202 15-sep-1990

2358

524 22-feb-1990

 

202 04-mar-1990

1979

502 10-feb-1989

 

202 23-feb-1989

500

539 26-jun-1990

 

202 03-jul-1990

1300

511 17-aug-1989

 

202 21-aug-1989

647

512 28-aug-1989

 

203 13-sep-1989

428

562 04-may-1991

203 19-may-1991

2044,5

529 02-apr-1990

 

203 05-apr-1990

1264,7

563 25-may-1991

204 26-may-1991

889

568 13-jul-1991

 

204 21-jul-1991 1217,4

504 11-apr-1989

 

204 12-apr-1989

1434,7

92

538 23-jun-1990

204 26-jun-1990

741

535 28-may-1990

204 09-jun-1990

810

578 19-nov-1991

204 04-dec-1991

2275,6

534 11-may-1990

206 15-may-1990

420

536 21-may-1990

206 06-jun-1990

2135,6

572 19-aug-1991

206 24-aug-1991

1200,5

514 05-sep-1989

207 16-sep-1989

1140

521 20-nov-1989

207 23-nov-1989

896,9

551 22-jan-1991

208 06-feb-1991

1142

513 06-sep-1989

208 14-sep-1989

1497

508 26-may-1989

208 08-jun-1989

1080

515 19-sep-1989

208 26-sep-1989

1428,5

542 11-aug-1990

208 23-aug-1990

2409

573 10-oct-1991

201 12-oct-1991

1627

566 09-jun-1991

201 12-jun-1991

3389,2

520 16-nov-1989

201 19-nov-1989

341,6

519 20-oct-1989

201 05-nov-1989

955

575 04-oct-1991

201 17-oct-1991

684

547 16-oct-1990

202 27-oct-1990

984,4

540 15-jul-1990

202 17-jul-1990

861,2

567 05-jul-1991

202 07-jul-1991

200

570 17-jul-1991

202 24-jul-1991

663,6

571 02-aug-1991

202 12-aug-1991

1095,6

541 08-aug-1990

203 18-aug-1990

400

532 08-apr-1990

203 21-apr-1990

1295,4

527 27-feb-1990

204 14-mar-1990

3054,4

501 06-jan-1989

204 11-jan-1989

216

564 25-may-1991

204 26-may-1991

898,8

537 14-jun-1990

204 26-jun-1990

672,9

522 07-jan-1990

204 10-jan-1990

2578,8

554 18-feb-1991

204 22-feb-1991

282,8

569 16-jul-1991

205 23-jul-1991

2073

550 27-jan-1991

205 07-feb-1991

2356

548 26-nov-1990

205 12-dec-1990

666,9

505 07-apr-1989

206 22-apr-1989

650

577 06-oct-1991

206 20-oct-1991

1265,75

533 28-apr-1990

206 02-may-1990

1122,1

561 20-apr-1991

207 07-may-1991

2558,3

506 27-apr-1989

208 10-may-1989

2600,4

530 03-apr-1990

208 07-apr-1990

3026,5

545 06-oct-1990

208 13-oct-1990

475

557 08-mar-1991

208 12-mar-1991

2461,8

546 17-oct-1990

208 23-oct-1990

3663

510 18-jul-1989

208 21-jul-1989 1336,6

100 rows selected.

 

 

 

DEMO@ORCL>SELECT * FROM item;

 

ORDER_ID

 

ITEM_ID PRODUCT_ID ACTUAL_PRICE QUANTITY TOTAL

---------- ---------- ---------- ------------ ---------- ----------

600

1

100861

42

1

42

610

3

100890

58

1

58

611

1

100861

45

1

45

612

1

100860

30

100

3000

601

1

200376

2,4

12

28,8

601

2

100860

32

1

32

602

1

100870

2,8

20

56

604

1

100890

58

3

174

604

2

100861

42

2

84

604

3

100860

32

12

384

603

1

100860

32

7

224

610

1

100860

35

1

35

93

610

2

100870

2,8

3

8,4

613

4

200376

2,2

200

440

614

1

100860

35

444

15540

614

2

100870

2,8

1000

2800

612

2

100861

40,5

20

810

612

3

101863

10

150

1500

620

1

100860

35

10

350

620

2

200376

2,4

1000

2400

620

3

102130

3,4

500

1700

613

1

100871

5,6

100

560

613

2

101860

24

200

4800

613

3

200380

4

150

600

619

3

102130

3,4

100

340

617

1

100860

35

50

1750

617

2

100861

45

100

4500

614

3

100871

5,6

1000

5600

616

1

100861

45

10

450

616

2

100870

2,8

50

140

616

3

100890

58

2

116

616

4

102130

3,4

10

34

616

5

200376

2,4

10

24

619

1

200380

4

100

400

619

2

200376

2,4

100

240

615

1

100861

45

4

180

607

1

100871

5,6

1

5,6

615

2

100870

2,8

100

280

617

3

100870

2,8

500

1400

617

4

100871

5,6

500

2800

617

5

100890

58

500

29000

617

6

101860

24

100

2400

617

7

101863

12,5

200

2500

617

8

102130

3,4

100

340

617

9

200376

2,4

200

480

617

10

200380

4

300

1200

609

2

100870

2,5

5

12,5

609

3

100890

50

1

50

618

1

100860

35

23

805

618

2

100861

45

50

2250

618

3

100870

2,8

10

28

621

1

100861

45

10

450

621

2

100870

2,8

100

280

615

3

100871

5

50

250

608

1

101860

24

1

24

608

2

100871

5,6

2

11,2

609

1

100861

40

1

40

606

1

102130

3,4

1

3,4

605

1

100861

45

100

4500

605

2

100870

2,8

500

1400

605

3

100890

58

5

290

605

4

101860

24

50

1200

605

5

101863

9,5

100

950

605

6

102130

3,4

10

34

612

4

100871

5,5

100

550

619

4

100871

5,6

50

280

509

1

105123

35

30

1050

509

2

105124

9

10

90

509

3

102136

3,4

10

34

523

1

102136

3,4

10

34

523

2

105123

37,7

30

1131

549

1

105123

38

5

190

549

2

105127

6

30

180

549

3

105125

3

200

600

94

549

4

105124

13

50

650

507

1

105123

35,3

20

706

507

2

105124

9

20

180

516

1

105124

9

60

540

516

2

102136

3,2

250

800

516

3

105125

1,9

250

475

553

1

105127

6

500

3000

553

2

200376

1,75

800

1400

526

1

105123

32

100

3200

526

2

105124

9

500

4500

543

1

105123

34

100

3400

543

2

105124

10

500

5000

555

1

105123

34

100

3400

555

2

105124

10

500

5000

555

3

102136

2,8

50

140

559

1

105123

40

5

200

559

2

105124

15

5

75

559

3

105127

6

5

30

559

4

102136

3,4

3

10,2

559

5

200376

2,4

30

72

528

1

105123

37,7

100

3770

531

1

105124

11

100

1100

531

2

102136

3

100

300

558

1

105124

14

100

1400

558

2

102136

3

100

300

525

1

105123

37,7

10

377

552

1

105123

40

10

400

552

2

105124

15

10

150

552

3

102136

3,4

1

3,4

552

4

200376

2,4

1

2,4

556

1

102136

3,4

25

85

560

1

200376

2,4

30

72

565

1

105123

37

100

3700

565

2

105124

12

100

1200

574

1

104350

41,8

25

1045

574

2

200380

3,2

200

640

576

1

104350

44

10

440

576

2

104351

26

10

260

576

3

104362

4,25

170

722,5

576

4

200376

2,16

90

194,4

576

5

200380

3,4

130

442

503

1

104350

38

30

1140

503

2

104351

23,6

10

236

503

3

104352

50

10

500

518

1

104350

38

25

950

518

2

104351

23,6

20

472

518

3

104360

36

20

720

518

4

104362

4,25

170

722,5

518

5

102134

3,4

20

68

517

1

104352

50

15

750

517

2

102134

3,4

10

34

544

1

104350

44

15

660

544

2

104351

26

15

390

544

3

104352

58,3

10

583

544

4

104361

50

10

500

544

5

104362

4,5

50

225

524

1

104350

42

10

420

524

2

104351

23,56

35

824,6

524

3

104362

4,25

150

637,5

524

4

102134

3,23

30

96,9

502

1

104352

50

10

500

539

1

104351

26

20

520

95

539

2

104360

39

20

780

511

1

104351

23,6

15

354

511

2

104362

4,5

50

225

511

3

102134

3,4

20

68

512

1

104360

36

10

360

512

2

102134

3,4

20

68

562

1

104351

24,7

25

617,5

562

2

104352

58,3

15

874,5

562

3

104362

4,25

130

552,5

529

1

104350

39,89

30

1196,7

529

2

102134

3,4

20

68

563

1

104352

58,3

10

583

563

2

200376

2,04

150

306

568

1

104351

24,7

30

741

568

2

200376

2,04

110

224,4

568

3

200380

3,6

70

252

504

1

104350

40

10

400

504

2

104351

22,42

35

784,7

504

3

104352

50

5

250

538

1

104351

24,7

30

741

535

1

104352

54

15

810

578

1

104350

41,8

40

1672

578

2

200376

2,04

190

387,6

578

3

200380

3,6

60

216

534

1

104350

42

10

420

536

1

104350

39,89

40

1595,6

536

2

104352

54

10

540

572

1

104351

24,7

25

617,5

572

2

104352

58,3

10

583

514

1

104350

38

30

1140

521

1

104350

40

20

800

521

2

102134

3,23

30

96,9

551

1

104350

44

10

440

551

2

104361

50

5

250

551

3

102134

3,4

20

68

551

4

200376

1,92

200

384

513

1

104350

40

15

600

513

2

104351

23,6

20

472

513

3

104362

4,25

100

425

508

1

104360

36

20

720

508

2

104362

4,5

80

360

515

1

104350

40

20

800

515

2

104351

22,42

25

560,5

515

3

102134

3,4

20

68

542

1

104350

41,8

25

1045

542

2

104360

39

20

780

542

3

104361

50

11

550

542

4

102134

3,4

10

34

573

1

103120

22,5

50

1125

573

2

103131

4,04

50

202

573

3

103141

20

15

300

566

1

103120

23,75

40

950

566

2

103121

27

50

1350

566

3

103130

3,77

60

226,2

566

4

103131

3,9

170

663

566

5

103141

20

10

200

520

1

103130

4

10

40

520

2

103131

3,77

80

301,6

519

1

103130

3,5

110

385

519

2

103140

19

30

570

575

1

103140

19

30

570

575

2

200380

3,8

30

114

96

547

1

103130

3,77

80

301,6

547

2

103131

4,04

70

282,8

547

3

103140

20

15

300

547

4

103141

20

5

100

540

1

103130

3,98

40

159,2

540

2

103131

3,9

180

702

567

1

103140

20

10

200

570

1

103131

4,04

90

363,6

570

2

103140

20

15

300

571

1

103131

4,04

70

282,8

571

2

103140

19

25

475

571

3

102132

3,4

15

51

571

4

200376

2,16

80

172,8

571

5

200380

3,8

30

114

541

1

103140

20

10

200

541

2

103141

20

10

200

532

1

103120

21,59

60

1295,4

527

1

103120

21,59

60

1295,4

527

2

103121

27,35

40

1094

527

3

103140

19

35

665

501

1

103130

3,6

60

216

564

1

103130

3,77

80

301,6

564

2

103131

3,9

120

468

564

3

102132

3,23

40

129,2

537

1

103130

3,6

160

576

537

2

102132

3,23

30

96,9

522

1

103120

21,59

80

1727,2

522

2

103121

28,8

10

288

522

3

103131

4,04

90

363,6

522

4

103141

20

10

200

554

1

103131

4,04

70

282,8

569

1

103120

22,5

50

1125

569

2

103130

3,6

180

648

569

3

103141

20

15

300

550

1

103120

22,5

60

1350

550

2

103140

19

45

855

550

3

103141

20

5

100

550

4

102132

3,4

15

51

548

1

103140

19

30

570

548

2

102132

3,23

30

96,9

505

1

103130

3,5

100

350

505

2

103140

20

15

300

577

1

103121

30

20

600

577

2

103131

3,9

150

585

577

3

102132

3,23

25

80,75

533

1

103121

27,35

30

820,5

533

2

103130

3,77

80

301,6

561

1

103120

22,5

80

1800

561

2

103130

3,77

70

263,9

561

3

103141

20

15

300

561

4

200376

2,16

90

194,4

506

1

103120

20,88

80

1670,4

506

2

103130

3,5

180

630

506

3

103141

20

15

300

530

1

103121

25,91

50

1295,5

530

2

103130

3,6

200

720

530

3

103140

19

40

760

530

4

103141

20

10

200

530

5

102132

3,4

15

51

545

1

103140

19

25

475

557

1

103120

23,75

40

950

557

2

103121

30

10

300

97

557

3

103140

19

35

665

557

4

200376

2,16

80

172,8

557

5

200380

3,4

110

374

546

1

103120

22,5

50

1125

546

2

103121

30

20

600

546

3

103130

3,6

120

432

546

4

103131

3,9

140

546

546

5

103140

19

40

760

546

6

103141

20

10

200

510

1

103120

20,88

60

1252,8

510

2

103131

4,19

20

83,8

271 rows selected.

DEMO@ORCL>SELECT * FROM product;

PRODUCT_ID DESCRIPTION

---------- ------------------------------

100860 ACE TENNIS RACKET I

100861 ACE TENNIS RACKET II

100870 ACE TENNIS BALLS-3 PACK

100871 ACE TENNIS BALLS-6 PACK

100890 ACE TENNIS NET

101860 SP TENNIS RACKET

101863 SP JUNIOR RACKET

102130 RH: "GUIDE TO TENNIS"

200376 SB ENERGY BAR-6 PACK

200380 SB VITA SNACK-6 PACK

103120 WIFF SOFTBALL BAT I

103121 WIFF SOFTBALL BAT II

103130 WIFF SOFTBALL, SMALL

103131 WIFF SOFTBALL, LARGE

103140 WIFF SOFTBALL MITT (LH)

103141 WIFF SOFTBALL MITT (RH)

102132 RH: "GUIDE TO SOFTBALL"

104350 DUNK BASKETBALL INDOOR

104351 DUNK BASKETBALL OUTDOOR

104352 DUNK BASKETBALL PROFESSIONAL

104360 DUNK HOOP

104361 DUNK HOOP W/FIBERGLASS BOARD

104362 DUNK NETS - RAINBOW

102134 RH: "GUIDE TO BASKETBALL"

105123 YELLOW JERSEY BICYCLE HELMET

105124 YELLOW JERSEY BICYCLE GLOVES

105125 YELLOW JERSEY WATER BOTTLE

105126 YELLOW JERSEY BOTTLE CAGE

105127 YELLOW JERSEY FRAME PUMP

105128 YELLOW JERSEY SADDLE PACK

102136 RH: "GUIDE TO CYCLING"

31 rows selected.

DEMO@ORCL> SELECT * FROM price;

PRODUCT_ID LIST_PRICE MIN_PRICE START_DATE END_DATE

---------- ---------- ---------- ----------- -----------

100871

5

3,2 01-jan-1989 01-dec-1989

100890

58

46,4

01-jan-1989

100890

54

40,5

01-jun-1988 31-dec-1988

100860

35

28 01-jun-1990

100860

32

25,6

01-jan-1990 31-may-1990

100860

30

24 01-jan-1989 31-dec-1989

100861

45

36 01-jun-1990

98

100861

42

33,6 01-jan-1990 31-may-1990

100861

39

31,2 01-jan-1989 31-dec-1989

100870

3

2,4

01-jan-1990

100870

2

1,9

01-jan-1989 01-dec-1989

100871

6

4,8

01-jan-1990

101860

24

18 15-feb-1989

101863

13

9,4 15-feb-1989

102130

3

2,8

18-aug-1989

200376

2

1,75 15-nov-1990

200380

4

3,2

15-nov-1990

103120

23

18,6 01-jan-1989 31-dec-1989

103120

24

19,2 01-jan-1990 31-may-1990

103120

25

20 01-jun-1990

103121

28

22,3 01-jan-1989 31-dec-1989

103121

29

23 01-jan-1990 31-may-1990

103121

30

24 01-jun-1990

103130

4

3,5

01-jan-1989 31-dec-1989

103130

4

3,6

01-jan-1990

103131

4

3,6

01-jan-1989 31-dec-1989

103131

5

3,9

01-jan-1990

103140

20

15 15-feb-1989

103141

20

15 15-feb-1989

102132

3

2,8

18-aug-1989

104350

40

32 01-jan-1989 31-dec-1989

104350

42

33,6 01-jan-1990 31-may-1990

104350

44

35,3 01-jun-1990

104351

24

18,9 01-jan-1989 31-dec-1989

104351

25

19,8 01-jan-1990 31-may-1990

104351

26

20,8 01-jun-1990

104352

50

35 01-jan-1989 31-dec-1989

104352

54

37,8 01-jan-1990 31-may-1990

104352

58

40,8 01-jun-1990

104360

36

29,5 01-jan-1989 31-dec-1989

104360

39

32 01-jan-1990

104361

47

33 01-jan-1989 31-dec-1989

104361

50

35 01-jan-1990

104362

5

4 15-feb-1989

102134

3

2,8

16-aug-1989

105123

36

29 01-jan-1989 31-dec-1989

105123

38

32 01-jan-1990 31-may-1990

105123

40

34 01-jun-1990

105124

10

7,6 01-jan-1989 31-dec-1989

105124

12

9

01-jan-1990 31-may-1990

105124

15

10 01-jun-1990

105125

2

1,7

01-jan-1989 31-dec-1989

105125

3

2,6

01-jan-1990

105126

5

4,3

01-jan-1989 31-dec-1989

105126

6

5 01-jan-1990

105127

6

5 15-nov-1990

105128

10

8

15-nov-1990

102136

3

2,8

03-jun-1989

58 rows selected.

DEMO@ORCL>SELECT * FROM salary_grade; GRADE_ID LOWER_BOUND UPPER_BOUND

---------- ----------- -----------

1

700

1200

2

1201

1400

3

1401

2000

4

2001

3000

5

3001

9999

99

Приложение 3

Решения отдельных задач SQL олимпиады 2007г.

Московский энергетический институт (технический университет) совместно с Oracle СНГ, компанией «ФОРС» и институтом «Информика» Министерства образования и науки РФ в 2007 г. впервые в России организовали олимпиаду по языку SQL версии Oracle. Задания олимпиады уже после нее опубликованы без решений в интернете /5/. Почти все задания сформулированы для предметной области пользователя HR в поставляемой с СУБД Oracle базе данных. В настоящем приложении представлены отдельные, оцениваемые наибольшими баллами сложности, задания и возможные их решения (понятно, что одни и те же SQL запросы могут отрабатываться разным способом).

Задание 13 /5/

В задании используется таблица HR.EMPLOYEES.

Выбрать сведения о сотрудниках, имеющих оклады, начиная со 2-го ранга по сумме оклада и кончая 5-м. Ранг 1 имеет сотрудник или сотрудники с наибольшим окладом, т. е. находящиеся на первом месте по величине оклада. Выводимые столбцы:

1. Имя (First_name). 2. Фамилия (Last_name). 3. Название отдела. 4. Должность (Job_id).

5. Оклад (Salary). 6. Позиция по окладу (ранг).

Строки в выходной таблице должны быть упорядочены по позиции (рангу) оклада и по названию отдела и должности в возрастающем порядке.

Дополнительные требования к выполнению

Не использовать аналитические функции.

Для ранжирования использовать псевдостолбец ROWNUM. Сложность в баллах: 7.

Решение.

1. Составим подзапрос, в котором бы присутствовал ранг зарплаты и зарплата

SELECT ROWNUM rn1, A.salary FROM

(SELECT DISTINCT salary FROM employees ORDER BY salary DESC) A;

2.Результирующий запрос

SELECT EMP.first_name, EMP.last_name, DEPT.department_name, EMP.job_id, EMP.salary, D.rn1 s_rank FROM

employees EMP, departments DEPT, (SELECT ROWNUM rn1, A.salary FROM

(SELECT DISTINCT salary FROM employees ORDER BY salary DESC) A ) D

WHERE EMP.department_id=DEPT.department_id AND EMP.salary=D.salary

AND D.rn1 BETWEEN 2 AND 5

ORDER BY s_rank, DEPT.department_name, EMP.job_id

/

Задание 14 (на аналитические функции) /5/

В задании используется таблица HR.EMPLOYEES.

Вывести из таблицы HR.EMPLOYEES информацию о сотрудниках отделов

сномерами 10, 30, 50, 90. Вывод должен быть оформлен в таблицу, содержащую столбцы:

1.Сквозной порядковый номер сотрудника.

2.Порядковый номер сотрудника внутри отдела.

3.Номер отдела для данного сотрудника (Department_id).

4.Должность сотрудника (Job_id).

5.Фамилия сотрудника (Last_name).

6.Оклад (Salary).

7.Ранг зарплаты сотрудника в отделе (1-й самый высокооплачиваемый).

Строки в выводимой таблице должны удовлетворять следующим условиям:

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

2.Строки, представляющие сотрудников одного отдела, должны

100

располагаться в порядке убывания окладов.

Дополнительные требования к выполнению

Обратите внимание, что ранг в отделе зависит от нумерации в отделе. 3. Сложность в баллах: 6.

Решение.

SELECT rownum id, DENSE_RANK() OVER (partition by department_id ORDER BY rn1) id_in_dept, department_id, job_id, last_name, salary, salary_rank

FROM

(SELECT rownum rn1, department_id, job_id, last_name, salary, salary_rank FROM

(SELECT department_id, job_id, last_name,salary,

DENSE_RANK() OVER (partition by department_id ORDER BY salary DESC) salary_rank FROM employees

WHERE department_id in(10, 30, 50, 90)) a) b ORDER BY department_id, id_in_dept

/

Задание 17 /5/ Список с дублируемыми сотрудниками Текст задания:

имеется таблица с тремя столбами: именем, фамилией и коэффициентом размножения, созданная и загруженная следующим образом:

DROP TABLE emp_selected; CREATE table emp_selected (

First_name VARCHAR2(20) NOT NULL

,Last_name VARCHAR2(20) NOT NULL

,N INTEGER NOT NULL);

INSERT INTO emp_selected VALUES('Ellen', 'ABEL', 3); INSERT INTO emp_selected VALUES('Matthew', 'WEISS' ,5); commit;

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

должно определяться коэффициентом размножения (столбец N исходной таблице). То есть должны быть 3 строки для сотрудника Ellen ABEL и 5 строк для

Matthew WEISS.

Строки должны быть объединены в группы и отсортированы по фамилии и имени. Кроме того, должны быть пронумерованы элементы внутри группы и присутствовать сквозная нумерация. Этот SELECT должен работать для произвольного количества строк в исходной таблице EMP_SELECTED.

В выходной таблице должны присутствовать следующие столбцы:

-сквозной номер строки по порядку;

-номер сотрудника в группе;

-имя (First_name);

-фамилия (Last_name).

Дополнительные требования к выполнению

Пример выходного отчѐта:

Сквозной № № в группе

Имя

Фамилия

----------

----------

-------------------

--------

1

1

Ellen

ABEL

2

2

Ellen

ABEL

3

3

Ellen

ABEL

4

1

Matthew

WEISS

5

2

Matthew

WEISS

6

3

Matthew

WEISS

7

4

Matthew

WEISS

8

5

Matthew

WEISS

8 rows selected.

Представленное решение без нумерации также засчитывается. Сложность в баллах: 10.