| | 69 | Прво издвојуваме утрешни flight_id со CTE, па агрегираме само за нив. |
| | 70 | |
| | 71 | {{{ |
| | 72 | WITH tomorrow_flights AS ( |
| | 73 | SELECT flight_id, airline_id, airplane_id, flightno, `from`, `to`, departure, arrival |
| | 74 | FROM flight |
| | 75 | WHERE departure >= CURDATE() |
| | 76 | AND departure < DATE_ADD(CURDATE(), INTERVAL 1 DAY) |
| | 77 | ), |
| | 78 | booking_x AS ( |
| | 79 | SELECT b.flight_id, COUNT(*) AS booked_seats, AVG(b.price) AS avg_price |
| | 80 | FROM booking b |
| | 81 | JOIN tomorrow_flights tf ON tf.flight_id = b.flight_id |
| | 82 | GROUP BY b.flight_id |
| | 83 | ) |
| | 84 | SELECT |
| | 85 | tf.flight_id, |
| | 86 | al.airlinename, |
| | 87 | tf.flightno, |
| | 88 | tf.`from`, |
| | 89 | tf.`to`, |
| | 90 | tf.departure, |
| | 91 | tf.arrival, |
| | 92 | a.capacity, |
| | 93 | bx.booked_seats, |
| | 94 | bx.avg_price, |
| | 95 | bx.booked_seats / a.capacity AS load_factor |
| | 96 | FROM tomorrow_flights tf |
| | 97 | JOIN booking_x bx ON bx.flight_id = tf.flight_id |
| | 98 | JOIN airline al ON al.airline_id = tf.airline_id |
| | 99 | JOIN airplane a ON a.airplane_id = tf.airplane_id |
| | 100 | ORDER BY load_factor DESC |
| | 101 | LIMIT 100; |
| | 102 | }}} |
| | 103 | |
| | 104 | === Оптимизација 2 (Уште пооптимизирано) |
| | 105 | |
| 116 | | === Оптимизација 2 (Уште пооптимизирано) |
| 117 | | |
| 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 | | }}} |