| | 10 | |
| | 11 | === Поставување на бизнис барање: |
| | 12 | |
| | 13 | “За утрешниот ден, за секој лет да се прикаже: авиокомпанија, рута, време, капацитет на авион, број резервирани места, load factor (% пополнетост), и просечна цена по резервација. Да се филтрираат само летови што веќе имаат барем 1 резервација и сортирај по највисок load factor.” |
| | 14 | |
| | 15 | ===== Прашалник 1 |
| | 16 | |
| | 17 | {{{ |
| | 18 | SELECT |
| | 19 | f.flight_id, |
| | 20 | al.airlinename, |
| | 21 | f.flightno, |
| | 22 | f.`from`, |
| | 23 | f.`to`, |
| | 24 | f.departure, |
| | 25 | f.arrival, |
| | 26 | (SELECT a.capacity |
| | 27 | FROM airplane a |
| | 28 | WHERE a.airplane_id = f.airplane_id) AS capacity, |
| | 29 | (SELECT COUNT(*) |
| | 30 | FROM booking b |
| | 31 | WHERE b.flight_id = f.flight_id) AS booked_seats, |
| | 32 | (SELECT AVG(b2.price) |
| | 33 | FROM booking b2 |
| | 34 | WHERE b2.flight_id = f.flight_id) AS avg_price, |
| | 35 | (SELECT COUNT(*) |
| | 36 | FROM booking b3 |
| | 37 | WHERE b3.flight_id = f.flight_id) / |
| | 38 | (SELECT a2.capacity |
| | 39 | FROM airplane a2 |
| | 40 | WHERE a2.airplane_id = f.airplane_id) AS load_factor |
| | 41 | FROM flight f |
| | 42 | JOIN airline al ON al.airline_id = f.airline_id |
| | 43 | WHERE f.departure >= CURDATE() |
| | 44 | AND f.departure < DATE_ADD(CURDATE(), INTERVAL 1 DAY) |
| | 45 | AND (SELECT COUNT(*) |
| | 46 | FROM booking bx |
| | 47 | WHERE bx.flight_id = f.flight_id) > 0 |
| | 48 | ORDER BY load_factor DESC |
| | 49 | LIMIT 100; |
| | 50 | }}} |