| | 118 | Прво издвојуваме утрешни flight_id со CTE, па агрегираме само за нив. |
| | 119 | |
| | 120 | {{{ |
| | 121 | WITH tomorrow_flights AS ( |
| | 122 | SELECT flight_id, airline_id, airplane_id, flightno, `from`, `to`, departure, arrival |
| | 123 | FROM flight |
| | 124 | WHERE departure >= CURDATE() |
| | 125 | AND departure < DATE_ADD(CURDATE(), INTERVAL 1 DAY) |
| | 126 | ), |
| | 127 | booking_x AS ( |
| | 128 | SELECT b.flight_id, COUNT(*) AS booked_seats, AVG(b.price) AS avg_price |
| | 129 | FROM booking b |
| | 130 | JOIN tomorrow_flights tf ON tf.flight_id = b.flight_id |
| | 131 | GROUP BY b.flight_id |
| | 132 | ) |
| | 133 | SELECT |
| | 134 | tf.flight_id, |
| | 135 | al.airlinename, |
| | 136 | tf.flightno, |
| | 137 | tf.`from`, |
| | 138 | tf.`to`, |
| | 139 | tf.departure, |
| | 140 | tf.arrival, |
| | 141 | a.capacity, |
| | 142 | bx.booked_seats, |
| | 143 | bx.avg_price, |
| | 144 | bx.booked_seats / a.capacity AS load_factor |
| | 145 | FROM tomorrow_flights tf |
| | 146 | JOIN booking_x bx ON bx.flight_id = tf.flight_id |
| | 147 | JOIN airline al ON al.airline_id = tf.airline_id |
| | 148 | JOIN airplane a ON a.airplane_id = tf.airplane_id |
| | 149 | ORDER BY load_factor DESC |
| | 150 | LIMIT 100; |
| | 151 | }}} |